熊猫,是约会假期吗?

时间:2019-11-13 08:02:44

标签: python pandas dataframe

我有以下熊猫数据框。日期和时间:

from pandas.tseries.holiday import USFederalHolidayCalendar
import pandas as pd<BR>
df = pd.DataFrame([[6,0,"2016-01-02 01:00:00",0.0],
                   [7,0,"2016-07-04 02:00:00",0.0]])

cal = USFederalHolidayCalendar()
holidays = cal.holidays(start='2014-01-01', end='2018-12-31')

如果日期是否为假日,我想用True / False添加一个新的布尔值列。 尝试过df["hd"] = df[2].isin(holidays),但由于时间太长而无法使用。

1 个答案:

答案 0 :(得分:2)

使用Series.dt.floorSeries.dt.normalize删除时间:

df[2] = pd.to_datetime(df[2])

df["hd"] = df[2].dt.floor('d').isin(holidays)
#alternative
df["hd"] = df[2].dt.normalize().isin(holidays)

print (df)
   0  1                   2    3     hd
0  6  0 2016-01-02 01:00:00  0.0  False
1  7  0 2016-07-04 02:00:00  0.0   True