这不可能。
底层
pandas.Dataframe对象是
numpy数组,它们不会按照您建议的方式对数据进行分组。因此,不能将任意列显示为分组数据。
选项1
使用MultiIndex可以 部分 复制所需的输出:
import pandas as pddf = 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 Score2Name PM AAA BBB 8 2 BBB 9 5 BBB 10 6
选项2
或者,您可以
set_index在3列上添加一个虚拟列:
df['dummy'] = 0res = df.set_index(['Name', 'PM', 'dummy'])
结果:
Score1 Score2Name PM dummy AAA BBB 08 2 09 5 0 10 6



