根据DateTimeIndex

时间:2019-07-16 15:42:20

标签: python pandas datetime

我有一个带有DateTimeIndex的熊猫数据框和一个名为WEEKEND的空列。

如果索引中的日期时间是在周末,我想将该列的值设置为“ YES”,以便得到的数据框如下所示:

TIME                    WEEKEND
2019-01-01 00:00:00     NO
2019-01-02 06:00:00     NO
2019-01-03 21:00:00     NO
2019-01-04 18:00:00     NO
2019-01-05 03:00:00     YES
2019-01-06 07:00:00     YES
2019-01-07 10:00:00     NO
2019-01-08 08:00:00     NO

我知道我可以做到:

df.loc[df.index.dayofweek == 5, 'WEEKEND'] = "YES" # Saturday
df.loc[df.index.dayofweek == 6, 'WEEKEND'] = "YES" # Sunday

但是我想在一个语句中做到这一点,可能使用IN关键字。

我尝试了这个,但是出现错误:

df.loc[df.index.dayofweek in [5,6], 'WEEKEND'] = "YES"

实现此目标的最佳方法是什么?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以申请或在.loc

df.loc[(df.index.dayofweek == 5) | (df.index.dayofweek == 6), 'WEEKEND'] = "YES"

使用.isin的第二种解决方案

df.loc[df.index.dayofweek.isin([5,6]) , 'WEEKEND'] = "YES"