簡體   English   中英

如何對熊貓中的單獨列使用不同的聚合函數? -蟒蛇

[英]how to use different aggregate functions for separate columns in pandas? - python

我有這個數據框:

>>> df = pd.DataFrame({'c1':['a','a','a','a','b','b','b','b'], 'c2':['x','y','x','y','x','y','x','y'], 'sum':[1,1,0,1,0,0,1,0], 'mean':[12,14,11,13,12,23,12,31]})

我正在嘗試使用兩個單獨的聚合函數,並且我知道可以做到這一點:

>>> df.groupby(['c1','c2'])['sum','mean'].agg([np.sum,np.mean])
>>> df
              sum        mean
            sum  mean  sum  mean
    c1  c2     
    a   x    1   0.5    23  11.5   
        y    2   1.0    27  13.5
    b   x    1   0.5    24  12.0
        y    0   0.0    54  27.0

但它會在sum創建不必要的“ mean”列,並在mean創建“ sum”列。 有沒有辦法達到這個結果:

        sum  mean
c1  c2     
a   x    1   11.5   
    y    2   13.5
b   x    1   12.0
    y    0   27.0

我試過了:

>>> df.groupby(['c1','c2'])['sum','mean'].agg({'sum':np.sum, 'mean':np.mean})

但是會引發KeyError異常。

您可以使用{column_name: agg_func}將字典傳遞給.agg

df.groupby(['c1', 'c2']).agg({'mean': np.mean, 'sum': np.sum})

       sum  mean
c1 c2           
a  x     1  11.5
   y     2  13.5
b  x     1  12.0
   y     0  27.0

暫無
暫無

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

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