python - Pandas - 改变数据框的形状

标签 python pandas

这是我的数据框:

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/

相关文章:

python - 如何使用 Python 3.7 安装 MATLAB Engine API for Python?

python - 将重复值插入 Pandas 行

python - Pandas iloc 错误索引导致减法问题

python - 我如何将两个数据帧的数据加在一起

python - 计算一个单词中出现的字母到 pandas DataFrame

python - 使用 pandas 数据框创建新变量并根据日期范围应用条件值

python - 我可以将文件视为Python中的列表吗?

python - 在 Pandas 中分配线条颜色

Python 程序不记得变量

python - 使用双下划线继承类属性