2015-04-16 54 views
1

什麼是熊貓等同的類似:Python熊貓:等同於SQL的聚合函數?

select mykey, sum(Field1) as Field1, avg(Field1) as avg_field1, min(field2) as min_field2 
from df 
group by mykey 

在SQL?據我瞭解,熊貓,我可以做

grouped = df.groupby('mykey') 

然後

grouped.mean() 

將計算平均值的所有字段。 但是,我需要不同列上的不同集合函數:在某些列上沒有,在其他列上總和和平均值,其他只是最大值等。

如何在熊貓中實現此目的? 謝謝!

+0

對於此 – EdChum

回答

0

我認爲你必須爲每個領域單獨做。

類似的東西可以工作: grouped = df.groupby('mykey') grouped['Field1'].agg([np.sum, np.mean]) grouped['Field2'].min()

+0

,[docs]中有一節(http://pandas.pydata.org/pandas-docs/stable/groupby.html#applying-multiple-functions-at-once)否您可以通過dict組成的列和函數'agg'來執行這個 – EdChum

+0

不錯,我之前沒有使用過這個選項。我立場糾正。 – sfotiadis

2

可以將多個功能,多個字段:

f = {'Field1':'sum', 
     'Field2':['max','mean'], 
     'Field3':['min','mean','count'], 
     'Field4':'count' 
     } 

    grouped = df.groupby('mykey').agg(f) 

希望這有助於!熊貓是一個非常強大的工具。