我有一个数据框df,我想看起来像df2。
yesterday = datetime.datetime.today - datetime.timedelta(days=1)
cols = pd.MultiIndex.from_product(iterables=[['A','B'],['1','2']], names=['letter','number'])
idx = pd.DatetimeIndex(start=yesterday, periods=2, freq='H')
df = pd.DataFrame(columns=cols, index=idx, data=[[1,2,3,4],[5,6,7,8]])
letter A B
number 1 2 1 2
2019-09-26 07:45:49.659873 1 2 3 4
2019-09-26 08:45:49.659873 5 6 7 8
df2 = pd.DataFrame(columns=['letter', '1', '2'], index=idx.append(idx), data=[['A',1,2],['A',5,6],['B',3,4],['B',7,8]])
letter 1 2
2019-09-26 07:45:49.659873 A 1 2
2019-09-26 08:45:49.659873 A 5 6
2019-09-26 07:45:49.659873 B 3 4
2019-09-26 08:45:49.659873 B 7 8
所以这有点像融化,或reset_index,但实际上我还没有发现魔术组合可以在更大的数据帧上做到这一点。我想将列的级别0更改为未透视的列,但将级别1保持不变。