折叠Pandas数据框中的行,每列具有不同的逻辑

时间:2018-04-27 18:37:37

标签: python pandas dataframe pandas-groupby

我希望折叠与给定列的值匹配的数据帧行,但其余列必须使用不同的逻辑进行折叠。例如:

City           ColumnA   ColumnB
Seattle        20        30
Seattle        30        20
Portland       25        25
Portland       10        40

我希望按City拆分,我希望ColumnA保持最低值,而ColumnB保持平均值。结果应如下所示:

City           ColumnA   ColumnB
Seattle        20        25
Portland       10        32.5

这只是一个例子,在我的实际问题中,我想应用更复杂的逻辑而不是min()或mean()。

什么是正确的,最干净,最简单的方法?谢谢。

1 个答案:

答案 0 :(得分:1)

使用groubpy.agg

df.groupby('City', as_index=False).agg({'ColumnA':'min', 'ColumnB':'mean'})

       City  ColumnA  ColumnB
0  Portland       10     32.5
1   Seattle       20     25.0