pandas 如何将DataFrame按两列分组,并从第三列创建两个具有最小值和最大值的新列?

izkcnapc  于 2023-01-24  发布在  其他
关注(0)|答案(1)|浏览(106)

例如,我有一个DataFrame:

a = [{'column_1': 'A', 'column_2': 'B', 'column_3': 3},
     {'column_1': 'A', 'column_2': 'B', 'column_3': 8},
     {'column_1': 'Y', 'column_2': 'C', 'column_3': 2},
     {'column_1': 'Y', 'column_2': 'C', 'column_3': 10},
     {'column_1': 'Y', 'column_2': 'C', 'column_3': 6},
     {'column_1': 'F', 'column_2': 'S', 'column_3': 11},
     {'column_1': 'F', 'column_2': 'S', 'column_3': 18},
     {'column_1': 'F', 'column_2': 'S', 'column_3': 5},
     {'column_1': 'F', 'column_2': 'S', 'column_3': 20}]
df = pd.DataFrame(a)
print(df)

我需要按列df['column_1']df['column_2']对DataFrame进行分组,创建两个新列df['min']df['max'],插入列df['column_3']中的minmax
我需要下一个结果:

lzfw57am

lzfw57am1#

根据documentation

df1 = df.groupby(['column_1', 'column_2'], as_index=False)['column_3'].agg({'min':'min', 'max':'max'})

相关问题