【问题标题】:Pandas, is a date holiday?熊猫,是约会假期吗?
【发布时间】:2019-11-13 08:02:44
【问题描述】:

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

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),但由于时间数字,它不起作用。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-15
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 2018-03-16
      相关资源
      最近更新 更多