在处理单索引数据帧时,我倾向于使用reset_index()
将索引切换回整数值
然而,有了多重索引,这一水平正在完全下降。重置为整数值无效
import pandas as pd
from random import seed, randint
from collections import OrderedDict
p1h = pd.period_range(start='2020-02-01 00:00', end='2020-02-02 00:00', freq='1h', name='p1h')
seed(1)
values1 = [randint(0,10) for p in p1h]
seed(2)
values2 = [randint(0,10) for p in p1h]
df1 = pd.DataFrame({'Values1' : values1, 'Values2' : values2}, index=p1h)
df2 = df1.stack()
结果:
df2.head(6)
p1h
2020-02-01 00:00 Values1 2
Values2 0
2020-02-01 01:00 Values1 9
Values2 1
2020-02-01 02:00 Values1 1
Values2 1
df2.reset_index(level=1, drop=True).head(6)
p1h
2020-02-01 00:00 2
2020-02-01 00:00 0
2020-02-01 01:00 9
2020-02-01 01:00 1
2020-02-01 02:00 1
2020-02-01 02:00 1
我所寻找的是在索引级别0定义的每个新组中,使整数值重新启动为0
Values
Timestamp
2020-02-01 00:00 0 2
1 0
2020-02-01 01:00 0 9
1 1
2020-02-01 02:00 0 1
1 1
拜托,有人知道吗?谢谢你的帮助!最好的
我认为这里最简单的是通过
range
设置列名,所以如果使用stack
get counter:如果使用
MultiIndex
,一个想法是使用rename
:或通过^{} 分配计数器:
相关问题 更多 >
编程相关推荐