我希望折叠与给定列的值匹配的数据帧行,但其余列必须使用不同的逻辑进行折叠。例如:
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()。
什么是正确的,最干净,最简单的方法?谢谢。
答案 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