设置日期时间索引片的值

2024-03-29 10:10:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个datetime索引的DataFrame,我希望根据列替换不同的datetime值范围。存储这些值的数据帧如下所示

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
...

目前,我在df2索引上使用一个for循环,然后按如下方式切片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
...

进行这种切片替换的最佳方法是什么?你知道吗


Tags: 数据dataframenewfordatetimevalue切片out