【发布时间】:2022-01-25 23:57:44
【问题描述】:
我有一个包含大量日期时间戳的 DataFrame - 称为 df:
Time Charge PV Energy
1 27/06/2021 04:45 NaN 1.5 1.8
2 28/06/2021 04:46 NaN 1.7 1.5
3 21/07/2021 04:47 NaN 2.5 3.1
4 29/07/2021 04:48 NaN 1.9 2.1
5 05/08/2021 04:49 NaN 1.4 1.1
我想添加一列来检查日期是否在单独的数据框中(查看他们的日子是否是假期)。这是包含假期的DataFrame(称为df_hols)
Date Holiday
0 2021-05-29 1
1 2021-07-21 1
2 2021-08-22 1
3 2021-08-23 1
4 2021-08-30 1
5 2021-08-30 1
6 2021-09-09 1
7 2021-09-19 1
我目前正在使用:
for date in df_hols['Date']:
df['Holiday'] = np.where(df['Time'].dt.date == date, True, False)
这可行,但速度很慢。
我试过了
df['Holiday'] = np.where(df['Time'].dt.date.isin(df_hols['Date']), True, False)
但这返回了所有False。
【问题讨论】:
-
请检查
dtypes在两个数据帧中是否相同。 -
他们都是
datetime.date。准确地说,df['Time'].dt.date和df_hols['Date']都是datetime.date
标签: python pandas dataframe date sorting