簡體   English   中英

在熊貓中對不同列使用不同功能的groupby

[英]groupby in pandas with different functions for different columns

最好以示例說明:

我想通過col1col2聚合一個DataFrame,對col3col4結果求和,並對col4結果col5

如果我只是想對col3-5求和,則可以使用df.groupby(['col1','col2']).sum()

您可以Groupby.agg()使用Groupby.agg() (或Groupby.aggregate() )方法。

aggregate()函數可以接受字典作為自變量,在這種情況下,它將鍵視為列名,將值視為用於聚合的函數。 文檔中所給-

通過傳遞要聚合的字典,您可以將不同的聚合應用於DataFrame的列。

范例-

import numpy as np
result = df.groupby(['col1','col2']).agg({'col3':'sum','col4':'sum','col5':np.average})

演示-

In [50]: df = pd.DataFrame([[1,2,3,4,5],[1,2,6,7,8],[2,3,4,5,6]],columns=list('ABCDE'))

In [51]: df
Out[51]:
   A  B  C  D  E
0  1  2  3  4  5
1  1  2  6  7  8
2  2  3  4  5  6

In [52]: df.groupby(['A','B']).aggregate({'C':np.sum,'D':np.sum,'E':np.average})
Out[52]:
     C    E   D
A B
1 2  9  6.5  11
2 3  4  6.0   5

暫無
暫無

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

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