【发布时间】:2020-08-31 15:38:39
【问题描述】:
我有以下数据框:
df = pd.DataFrame({'mean':np.arange(0,12),
'lo':np.arange(12,24),
'hi':np.arange(24,36),
'prop':['prop1']*6+['prop2']*6,
'group':['group1','group2','group3']*4,
'type':['type1','type2']*6})'effect_size'
df.head()
输出:
mean lo hi prop group type
0 0 12 24 prop1 group1 type1
1 1 13 25 prop1 group2 type2
2 2 14 26 prop1 group3 type1
3 3 15 27 prop1 group1 type2
4 4 16 28 prop1 group2 type1
我想旋转表格,以便生成的表格包含这些列(期望的输出):
type1 type2
group1 group2 group3 group1 group2 group3
mean lo hi mean lo hi mean lo hi mean lo hi mean lo hi mean lo hi
prop1 0 12 24 4 16 28 2 14 26 3 15 27 1 13 25 5 17 29
prop2 6 18 30 10 22 34 8 20 32 9 21 33 7 19 31 11 23 35
我尝试过使用pivot()(由于重复的索引值而无法使用)和pivot_table():
df2 = df.pivot_table(index='prop',columns=['group','type'], values=['mean','lo','hi'])
df2
输出:
hi lo mean
group group1 group2 group3 group1 group2 group3 group1 group2 group3
type type1 type2 type1 type2 type1 type2 type1 type2 type1 type2 type1 type2 type1 type2 type1 type2 type1 type2
prop
prop1 24 27 28 25 26 29 12 15 16 13 14 17 0 3 4 1 2 5
prop2 30 33 34 31 32 35 18 21 22 19 20 23 6 9 10 7 8 11
结果是我想要的,只是列的顺序不正确且难以阅读。 如何重新排列df2 的列以获得所需的输出?
我已经尝试使用 MultiIndex 索引 reindex(),但我最终得到了一个充满 NaN 的表。
【问题讨论】:
标签: pandas pivot multi-index