簡體   English   中英

如何在聚合函數中選擇多個列?

[英]how to choose multiple columns in aggregate functions?

我有這樣的數據:

A,B,C,D
1,50,1 ,3.9
2,20,22,1.5
3,10,10,2.3
2,15,11,1.8
1,16,13,4.2

我想將它們按A分組,我將對BCmean ,對D求和。
解決方案是這樣的:

df = df.groupby(['A']).agg({
    'B': 'mean', 'C': 'mean', 'D': sum
})

我在問是否有一種方法可以為同一功能選擇多個列,而不是像BC一樣重復

如果每列最多需要一個聚合,則可以將聚合存儲在dict {func: col_list} ,然后在聚合時將其解壓縮。

d = {'mean': ['B', 'C'], sum: ['D']}

df.groupby(['A']).agg({col: f for f,cols in d.items() for col in cols})
#      B     C    D
#A                 
#1  33.0   7.0  8.1
#2  17.5  16.5  3.3
#3  10.0  10.0  2.3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM