【发布时间】:2019-07-20 08:14:11
【问题描述】:
我在 pandas 中有一个数据框,它的索引中有一个错误:23:00:00 到 23:59:59 之间的每个条目都有一个错误的日期。我需要在这两次之间的每个条目中减去一天(即 24 小时)。
我知道我可以获得这两次之间的条目df[df.hour == 23],其中df 是我的数据框。但是,我可以只为数据框索引的那些特定条目修改日期吗?
重置会花费我更多的时间,因为我的数据帧索引不是均匀分布的,如下图所示(两个连续条目之间的间隔为 15 分钟和 30 分钟)。还要注意图中最后三个条目中的错误日期:应该是 2018-02-05 而不是 2018-02-06。
我试过这样做
df[df.index.hour == 23].index.day = df[df.index.hour == 23].index.day - 1
但我得到AttributeError: can't set attribute
样本数据:
2018-02-05 22:00:00 271.8000
2018-02-05 22:30:00 271.5600
2018-02-05 22:45:00 271.4400
2018-02-06 23:15:00 271.3750
2018-02-06 23:30:00 271.3425
2018-02-06 00:00:00 271.2700
2018-02-06 00:15:00 271.2300
2018-02-06 00:45:00 271.1500
2018-02-06 01:00:00 271.1475
2018-02-06 01:30:00 271.1425
2018-02-06 01:45:00 271.1400
预期输出:
2018-02-05 22:00:00 271.8000
2018-02-05 22:30:00 271.5600
2018-02-05 22:45:00 271.4400
2018-02-05 23:15:00 271.3750
2018-02-05 23:30:00 271.3425
2018-02-06 00:00:00 271.2700
2018-02-06 00:15:00 271.2300
2018-02-06 00:45:00 271.1500
2018-02-06 01:00:00 271.1475
2018-02-06 01:30:00 271.1425
2018-02-06 01:45:00 271.1400
【问题讨论】:
-
请提供
code-formatted示例数据、您尝试过的内容以及预期的输出结果。 -
我用请求的信息编辑了问题
标签: python pandas datetime dataframe