这是我的数据框:
df = pd.DataFrame({'level': ['ma', 'ma', 'phd', 'phd'],
'measure': ['x', 'y', 'x', 'y'],
'result_1': [1, 2, 3, 4],
'result_2': [50, 60, 70, 80]})
我想把 df
的形状改成这样:
level x y
result_1 ma 1 2
phd 3 4
result_2 ma 50 60
phd 70 80
我不知道我想要的结果的正确代码,所以我只是发布了我需要的输出。
最佳答案
让我们试试 set_index
,然后 unstack
level=0 嵌套在列标题下,T
转置:
df.set_index(['level','measure']).unstack(0).T
#To @Alexander point in the comments, alternative for readability.
#df.set_index(['level','measure']).unstack(level=0).T
输出:
measure x y
level
result_1 ma 1 2
phd 3 4
result_2 ma 50 60
phd 70 80
关于python - Pandas - 改变数据框的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55833325/