【发布时间】:2021-12-29 14:56:31
【问题描述】:
我对 Pandas 比较陌生。我有一个表单中的 DataFrame:
A B C D E
0 1 1.1 a 23.7853 18.2647
1 1 1.2 a 23.7118 17.2387
2 1 1.1 b 24.1873 17.3874
3 1 1.2 b 23.1873 18.1748
4 2 1.1 a 24.1872 18.1847
... ... ... ... ... ...
我想将它转变成一个由 A 和 B 列中的值以及列标题 [“D”、“E”] 构建的三级 MultiIndex。我还想将 B 中的值用作新的列标题,并将 D 和 E 列中的数据用作值。所有值都是一对一的(带有一些 NaN)。如果我理解正确,由于 MultiIndex,我需要使用 pivot_table() 而不仅仅是 pivot()。最终我想要一个看起来像这样的表格:
B 1.1 1.2 ...
A C col-name
1 a D 23.7853 23.7118 ...
E 18.2647 17.2387 ...
b D 24.1873 23.1873 ...
E 17.3874 18.1748 ...
2 a D 24.1872 23.1987 ...
E 18.1847 19.2387 ...
... ... ... ... ... ...
我很确定答案是使用类似的命令
pd.pivot_table(df, columns=["B"], values=["D","E"], index=["A","C","???"])
我不确定在“值”和“索引”参数中添加什么以获得正确的行为。
如果我不能用一个 pivot_table 命令来做到这一点,我需要提前构建我的多索引吗?然后呢?
谢谢!
【问题讨论】:
标签: python pandas pivot-table multi-index