我有一个使用12小时频率日期时间索引的数据帧:
id mm ls
date
2007-09-27 00:00:00 1 0 0
2007-09-27 12:00:00 1 0 0
2007-09-28 00:00:00 1 15 0
2007-09-28 12:00:00 NaN NaN 0
2007-09-29 00:00:00 NaN NaN 0
Timestamp('2007-09-27 00:00:00', offset='12H')
我使用列'ls'作为二进制变量,默认值为'0',使用:
data['ls'] = 0
我有“2007-09-28”形式的日期列表,我希望将所有'ls'值从0更新为1.
id mm ls
date
2007-09-27 00:00:00 1 0 0
2007-09-27 12:00:00 1 0 0
2007-09-28 00:00:00 1 15 1
2007-09-28 12:00:00 NaN NaN 1
2007-09-29 00:00:00 NaN NaN 0
Timestamp('2007-09-27 00:00:00', offset='12H')
我理解如何使用另一个列变量来完成,即:
data.ix[data.id == '1'], ['ls'] = 1
但这不能使用日期时间索引。
日期时间索引的方法是什么?
亲切的谢谢
答案 0 :(得分:1)
您有“2007-09-28”形式的日期列表:
days = ['2007-09-28', ...]
然后你可以使用:
修改你的dfdf['ls'][pd.DatetimeIndex(df.index.date).isin(days)] = 1