gpt4 book ai didi

python - Pandas:检查日期是否为假期并分配 bool 值

转载 作者:IT老高 更新时间:2023-10-28 21:01:08 25 4
gpt4 key购买 nike

我有一个带有日期列的 pandas 数据框,我正在尝试添加一个新的 bool 值列,指示给定日期是否为假日。

以下是代码,但它不起作用(所有值都是 False),因为类型似乎不同,我不知道如何让 pandas 数据框中的“日期”为与假期同类型:

cal = USFederalHolidayCalendar()
holidays = cal.holidays(start=train_df['date'].min(),
end=train_df['date'].max()).to_pydatetime()
train_df['holiday'] = train_df['date'].isin(holidays)
print type(train_df['date'][1])
print type(holidays[0])

最佳答案

你不需要转换任何东西。直接比较就行了。 pandas 足够聪明,可以比较许多不同类型的日期和时间。如果您遇到日期/时间兼容性问题,则必须采用更深奥的格式。

import pandas as pd
from pandas.tseries.holiday import USFederalHolidayCalendar as calendar

dr = pd.date_range(start='2015-07-01', end='2015-07-31')
df = pd.DataFrame()
df['Date'] = dr

cal = calendar()
holidays = cal.holidays(start=dr.min(), end=dr.max())

df['Holiday'] = df['Date'].isin(holidays)
print df

结果:

         Date Holiday
0 2015-07-01 False
1 2015-07-02 False
2 2015-07-03 True
3 2015-07-04 False
4 2015-07-05 False
5 2015-07-06 False
6 2015-07-07 False
7 2015-07-08 False
8 2015-07-09 False
9 2015-07-10 False
10 2015-07-11 False
11 2015-07-12 False
12 2015-07-13 False
13 2015-07-14 False
14 2015-07-15 False
15 2015-07-16 False
16 2015-07-17 False
17 2015-07-18 False
18 2015-07-19 False
19 2015-07-20 False
20 2015-07-21 False
21 2015-07-22 False
22 2015-07-23 False
23 2015-07-24 False
24 2015-07-25 False
25 2015-07-26 False
26 2015-07-27 False
27 2015-07-28 False
28 2015-07-29 False
29 2015-07-30 False
30 2015-07-31 False

请注意,2015 年 7 月 4 日是星期六。

关于python - Pandas:检查日期是否为假期并分配 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29688899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com