PYTHON:Pandas日期时间索引范围可更改列值

时间:2015-11-13 14:51:14

标签: python datetime pandas

我有一个使用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

但这不能使用日期时间索引。

日期时间索引的方法是什么?

亲切的谢谢

1 个答案:

答案 0 :(得分:1)

您有“2007-09-28”形式的日期列表:

days = ['2007-09-28', ...]

然后你可以使用:

修改你的df
df['ls'][pd.DatetimeIndex(df.index.date).isin(days)] = 1