我有下面的熊猫数据框。日期以时间表示:
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),但由于时间数字的原因,它不起作用。
发布于 2019-11-13 16:04:37
使用Series.dt.floor或Series.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 Truehttps://stackoverflow.com/questions/58832673
复制相似问题