我有一个日期时间索引的pandas DataFrame,我希望根据列替换不同的日期时间值范围。我存储值的DataFrame如下所示,
df1
Out[1]:
IL15 IL09 IL06
2016-06-23 00:00:00 1 1 1
2016-06-23 00:01:00 1 1 1
2016-06-23 00:02:00 1 1 1
2016-06-23 00:03:00 1 1 1
2016-06-23 00:04:00 1 1 1
2016-06-23 00:05:00 1 1 1
...
日期范围,列标题和新值存储在此处显示的DataFrame df2
中,
df2
Out[2]:
Start End Column_Head New_Value
0 2016-06-23 04:35:00 2016-06-23 04:50:00 IL15 0
1 2016-06-23 02:55:00 2016-06-23 05:15:00 IL09 3
3 2016-06-23 05:15:00 2016-06-23 06:00:00 IL06 5
...
目前,我在for
索引上使用df2
循环,然后按如下方式切片df1
,
for i in df2.index:
df1.loc[df2.Start[i]:df2.End[i], (df2.IndirectCode[i])] = df2.New_Value[i]
我无法帮助,但我认为在熊猫中有更好的方法可以做到这一点。
输出看起来像这样 - 虽然不一定对所显示的数据部分是正确的。
df1
Out[1]:
IL15 IL09 IL06
2016-06-23 00:00:00 0 1 1
2016-06-23 00:01:00 0 1 1
2016-06-23 00:02:00 1 1 1
2016-06-23 00:03:00 1 1 5
2016-06-23 00:04:00 1 3 5
2016-06-23 00:05:00 1 3 5
...
执行此类切片替换的最佳方法是什么?