Python 使用列中的值对数据帧进行多索引
我有一个如下所示的数据帧:Python 使用列中的值对数据帧进行多索引,python,pandas,Python,Pandas,我有一个如下所示的数据帧: 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
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
我想通过第2列和第3列中的值对这些列进行多索引。应该是这样的
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
我相信你需要:
如果需要通过column4
删除column4
的MultiIndex
顶层,请使用:
谢谢,这正是我所需要的,我希望我在3小时前开始尝试multiindex和groupby时问过这个问题,但没有成功!
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
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