我有一个看起来像这样的数据框:
column1 column2 column3 column4
P1 D1 T1 1.0
P1 D1 T2 2.0
P1 D2 T1 3.0
P1 D2 T2 4.0
P2 D1 T1 5.0
P2 D1 T2 6.0
P2 D2 T1 7.0
P2 D2 T2 8.0
我想用column2和column3中的值对这些列进行多索引。它应该看起来像这样
column1 column4
D1 D2
T1 T2 T1 T2
P1 1.0 2.0 3.0 4.0
P2 5.0 6.0 7.0 8.0
最佳答案
我相信您需要DataFrame.set_index
和Series.unstack
:
df = df.set_index(['column1','column2','column3'])['column4'].unstack([1,2])
print (df)
column2 D1 D2
column3 T1 T2 T1 T2
column1
P1 1.0 2.0 3.0 4.0
P2 5.0 6.0 7.0 8.0
如果需要
MultiIndex
的column4
顶级,请删除column4
并使用DataFrame.unstack
:df = df.set_index(['column1','column2','column3']).unstack([1,2])
print (df)
column4
column2 D1 D2
column3 T1 T2 T1 T2
column1
P1 1.0 2.0 3.0 4.0
P2 5.0 6.0 7.0 8.0
关于python - 使用列中的值对 Pandas 数据框进行多索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58337420/