是否可以将熊猫日期时间转换为工作日/周末和季节?

Gre*_*sen 2 python data-manipulation pandas

我有一个 Pandas 数据框,如果它的列采用日期时间格式 ( year-month-day)。有什么办法可以创建一个新的列说周末或工作日,以及一个说现在是什么季节的列?更好的是(但这个似乎更复杂,所以不是完全必要的)也将是它是否是联邦假期(美国)。

例如,日期 2019-10-23 的实例是星期三,所以我想创建一个名为day_type“weekday”的列,以及一个名为season“fall”的列。

mcr*_*rnz 6

使用 strftime 很容易:

import pandas as pd 

df = pd.DataFrame({'string_date': ['2019-10-23', '2019-10-24', '2019-10-23']})
df['date'] = pd.to_datetime(df['string_date'], format='%Y-%m-%d', errors='ignore')
df['day_of_week'] = df['date'].dt.strftime('%A')
Run Code Online (Sandbox Code Playgroud)

结果1:

  string_date       date    day_of_week
0  2019-10-23   2019-10-23   Wednesday
1  2019-10-24   2019-10-24    Thursday
2  2019-10-23   2019-10-23   Wednesday
Run Code Online (Sandbox Code Playgroud)

要添加季节,您可以使用此公式: 链接

df['season'] = (df['date'].dt.month%12 + 3)//3
Run Code Online (Sandbox Code Playgroud)

结果2:

      string_date       date day_of_week  season
0  2019-10-23 2019-10-23   Wednesday       4
1  2019-10-24 2019-10-24    Thursday       4
2  2019-10-23 2019-10-23   Wednesday       4
Run Code Online (Sandbox Code Playgroud)

Strftime 参考:http ://strftime.org/

  • 这真的很有帮助,也可以解决工作日或周末问题,我们可以这样做`df['is_weekday'] = df.date.dt.weekday<5` (2认同)