我有一个带有DateTimeIndex和一个名为WEEKEND的空列的Pandas dataframe。
如果索引中的日期时间在周末,我想将该列的值设置为'YES‘,这样得到的dataframe如下:
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"实现这一目标的最好方法是什么?
谢谢
发布于 2019-07-16 23:48:54
您可以在.loc中应用或
df.loc[(df.index.dayofweek == 5) | (df.index.dayofweek == 6), 'WEEKEND'] = "YES"使用.isin的第二种解决方案
df.loc[df.index.dayofweek.isin([5,6]) , 'WEEKEND'] = "YES"https://stackoverflow.com/questions/57061006
复制相似问题