Python 在透视后排列数据帧标题
我已经完成了pivot,我的新数据框架如下所示: 因此,Python 在透视后排列数据帧标题,python,pandas,dataframe,indexing,Python,Pandas,Dataframe,Indexing,我已经完成了pivot,我的新数据框架如下所示: 因此,userId列现在是一个索引,我有一个两级标题。如何转到一个类似以下内容的单级标题: ' ' , 'userId' , 1, 2, 3, 4, 5 其中,空条目是数据帧的索引,userId是一个常规列 您可以使用数据帧的stack方法将级别1的列转换为索引,然后使用reset\u index将索引转换为列: In [2]: import pandas as pd
userId
列现在是一个索引,我有一个两级标题。如何转到一个类似以下内容的单级标题:
' ' , 'userId' , 1, 2, 3, 4, 5
其中,空条目是数据帧的索引,userId是一个常规列 您可以使用数据帧的
stack
方法将级别1的列转换为索引,然后使用reset\u index
将索引转换为列:
In [2]: import pandas as pd
In [3]: df = pd.DataFrame(index=range(3), columns=pd.MultiIndex.from_product([[1, 2], ['a', 'b']])).fillna(1)
In [4]: df = df.stack(level=-1)
In [5]: df
Out[5]:
1 2
0 a 1 1
b 1 1
1 a 1 1
b 1 1
2 a 1 1
b 1 1
In [6]: df = df.reset_index(drop=False).set_index('level_0')
In [7]: df
Out[7]:
level_1 1 2
level_0
0 a 1 1
0 b 1 1
1 a 1 1
1 b 1 1
2 a 1 1
2 b 1 1
嗨,我做了一个编辑,很抱歉不清楚。像往常一样,我希望userId是一个简单的列,而index列是未命名的。然后您可以
首先取消堆栈
数据帧,然后将索引的最后一级转换为列,请参阅修改后的答案。请共享输入和输出数据帧的数据,而不是图片