【发布时间】:2018-11-24 19:31:53
【问题描述】:
我有一个看起来像这样的熊猫数据框:
x1 x2 x3 x4
Date Time
2017-01-03 09:00:00 0.000097 0.000259 0.000629 0.000142
09:20:00 0.000046 0.000044 0.000247 0.000134
09:40:00 0.000021 0.000032 0.000171 0.000105
10:00:00 0.000033 0.000040 0.000136 0.000178
10:20:00 0.000079 0.000157 0.000094 0.000083
.....
17:00:00 0.000032 0.000137 0.000024 0.000028
但是,我想将第二个索引重新索引一个 20 分钟的 bin,我希望它看起来像这样:
x1 x2 x3 x4
Date Time
2017-01-03 09:20:00 0.000097 0.000259 0.000629 0.000142
09:40:00 0.000046 0.000044 0.000247 0.000134
10:00:00 0.000021 0.000032 0.000171 0.000105
10:20:00 0.000033 0.000040 0.000136 0.000178
10:40:00 0.000079 0.000157 0.000094 0.000083
.....
17:20:00 0.000032 0.000137 0.000024 0.000028
所以所有值都保持不变,只有第二个索引被重命名,其他一切都保持不变。
我试过以下代码:
x.reindex(pd.date_range(pd.Timestamp('09:20:00'), pd.Timestamp('17:20:00'), freq="20min").time, level=1)
但它只是移动索引并且值保持在同一个位置。
x1 x2 x3 x4
Date Time
2017-01-03 09:20:00 0.000046 0.000044 0.000247 0.000134
09:40:00 0.000021 0.000032 0.000171 0.000105
10:00:00 0.000033 0.000040 0.000136 0.000178
10:20:00 0.000079 0.000157 0.000094 0.000083
.....
17:00:00 0.000032 0.000137 0.000024 0.000028
它甚至没有为 17:20:00 的垃圾箱做广告。
但是,如果我也尝试在像这样分组后改变值:
x.groupby(level=1).shift(1)
或:
x.groupby(level=1).shift(1, freq='20min')
但这根本不起作用。
【问题讨论】:
标签: python pandas multi-index