Python 部分熔融分级索引

Python 部分熔融分级索引,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据帧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.Da

我有一个数据帧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

所以它有点像熔化,或者重置索引,但实际上我还没有找到在更大的数据帧上实现这一点的神奇组合。我想将列的级别0更改为未插入的列,但保持级别1不变

是不是
df.stack(0)
?同意@QuangHoang simple
stack()
的观点。重置索引(1)
应该可以做到:
df.stack(0)。重置索引(1)。重命名_轴(无,轴=1)
@QuangHoang差不多了,但这会将熔化的列推入索引。也许我可以把索引作为一列移入……syzygy:你可以看到@anky_91的评论。