我有一個包含以下示例列的資料框。
我在日期列中有每日資料。我想根據日期添加具有特定值的列。
如果日期在 29 之前,那么它應該在 12/29 之前的值包含在新的日期范圍列中,在 30 之后意味著它應該包括在 12/30 之后,與其他相同。
Date product result
12/27/2021 tv 6
12/27/2021 tv 38
12/27/2021 tv 2
12/28/2021 broadband 5
12/29/2021 tv 6
12/30/2021 broadband 7
12/30/2021 tv 10
12/31/2021 broadband 48
01/06/2022 broadband 48
Expected output
Date day_range product result
12/27/2021 before 12/29 tv 6
12/27/2021 before 12/29 tv 38
12/27/2021 before 12/29 tv 2
12/28/2021 before 12/29 broadband 5
12/29/2021 29-Dec tv 6
12/30/2021 30-Dec broadband 7
12/30/2021 30-Dec tv 10
12/31/2021 After 12/30 broadband 48
01/06/2022 After 12/30 broadband 4
有什么方法可以實作這一點
uj5u.com熱心網友回復:
使用numpy.select:
df['Date'] = pd.to_datetime(df['Date'])
df['day_range'] = np.select([df['Date'].lt('2021-12-29'),
df['Date'].gt('2021-12-30')],
['before 12/29','After 12/30'],
default=df['Date'].dt.strftime('%d-%b'))
print (df)
Date product result day_range
0 2021-12-27 tv 6 before 12/29
1 2021-12-27 tv 38 before 12/29
2 2021-12-27 tv 2 before 12/29
3 2021-12-28 broadband 5 before 12/29
4 2021-12-29 tv 6 29-Dec
5 2021-12-30 broadband 7 30-Dec
6 2021-12-30 tv 10 30-Dec
7 2021-12-31 broadband 48 After 12/30
8 2022-01-06 broadband 48 After 12/30
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/415637.html
標籤:
