我有一个 Pandas 数据框,如图片所示。我如何将其变成下表所示的表格。 (演示是在excel中进行的,但我只想向您说明表的外观-这个问题与从excel导入和导出数据框无关)
谢谢
最佳答案
这不可能。
底层pandas.DataFrame
对象是numpy
数组,它们不会按照您建议的方式对数据进行分组。因此,不能将任意列显示为分组数据。
选项1
使用MultiIndex可以部分复制所需的输出:
import pandas as pd
df = pd.DataFrame([['AAA', 8, 2, 'BBB'],
['AAA', 9, 5, 'BBB'],
['AAA', 10, 6, 'BBB']],
columns=['Name', 'Score1', 'Score2', 'PM'])
res = df.set_index(['Name', 'PM'])
结果:
Score1 Score2
Name PM
AAA BBB 8 2
BBB 9 5
BBB 10 6
选项2
或者,您可以在3列上添加一个虚拟列和
set_index
:df['dummy'] = 0
res = df.set_index(['Name', 'PM', 'dummy'])
结果:
Score1 Score2
Name PM dummy
AAA BBB 0 8 2
0 9 5
0 10 6