【发布时间】:2023-01-11 05:40:39
【问题描述】:
我有一个熊猫数据框,我需要“切换”行和列。 (转置?枢轴?融化?不知道它是怎么称呼的):
假设我有 2 个引用,每个引用有 4 个步骤,每个步骤有 3 个变量
df = pd.DataFrame({'ref': ['ref1', 'ref1', 'ref1', 'ref1', 'ref2', 'ref2', 'ref2', 'ref2'],
'step': [1, 2, 3, 4, 1, 2, 3, 4],
'var_1': [5, 7, 7, 9, 12, 9, 87, 90],
'var_2': [11, 8, 10, 6, 6, 9, 12, 9],
"var_3": [11, 8, 10, 6, 6, 9, 12, 9]})
我想将此 df 转换为这种形式:
df = pd.DataFrame({'ref': ['ref1', 'ref2'],
> 'step 1 - var_1': [5, 12],
> 'step 1 - var_2': [11, 6],
> 'step 1 - var_3': [11, 6],
> 'step 2 - var_1': [7, 12],
> 'step 2 - var_2': [8, 9],
> 'step 2 - var_3': [8, 9]})
先感谢您, 最好
编辑:格式和图像
【问题讨论】:
-
输入与输出如何对应?
-
从输出列中,它声音就像您可能想要
df.explode('step')然后rename(),但行值与此不对应。
标签: python pandas pivot transpose