【发布时间】:2017-08-30 01:46:54
【问题描述】:
我在pandas 中有一个数据框df,如下所示:
signal1
timestamp
2017-08-23 21:30:00.012 181643.0
2017-08-23 21:31:00.002 181635.0
2017-08-23 21:32:00.003 181630.0
2017-08-23 21:33:00.006 181611.0
2017-08-23 21:34:00.002 181644.0
我有这样的索引:
[2017-08-23 14:30:00-07:00, 2017-08-23 14:31:00-07:00, 2017-08-23 14:32:00-07:00, 2017-08-23 14:33:00-07:00, 2017-08-23 14:34:00-07:00, 2017-08-23 14:35:00-07:00]
现在,如果我像这样重新索引df:
df = df.reindex(indexes)
输出是:
timestamp signal1
2017-08-23 14:30:00-07:00 NaN
2017-08-23 14:31:00-07:00 NaN
2017-08-23 14:32:00-07:00 NaN
2017-08-23 14:33:00-07:00 NaN
2017-08-23 14:34:00-07:00 NaN
2017-08-23 14:35:00-07:00 NaN
我希望输出是:
signal_name signal1
2017-08-23 14:30:00-07:00 181643.0
2017-08-23 14:31:00-07:00 181643.0
2017-08-23 14:32:00-07:00 181643.0
2017-08-23 14:33:00-07:00 181643.0
2017-08-23 14:34:00-07:00 181643.0
2017-08-23 14:35:00-07:00 NaN
我不明白为什么它没有正确重新索引。
【问题讨论】:
-
来自the documentation:“使用可选填充逻辑将 DataFrame 与新索引一致,将 NA/NaN 放置在先前索引中没有值的位置。”。
signal1在给定的时间戳上没有值。 -
您似乎只想重置索引。不重新索引。
-
而
reset_index()不会做你想做的事。索引对象是不可变的。 -
仔细看,需要的索引偏移了7个小时。因此,它们具有与原件相同的索引。唯一的区别是一个精度为毫秒,另一个精度为分钟。
标签: python pandas data-analysis