1.groupby聚合函數彙總
min() 最小值
max() 最大值
sum() 求和
mean() 平均數
std() 标準差
size() 按照groupby的值計算該值的個數 與count函數的差別在于,size函數會計算NAN值,而count函數不會計算NAN值
count() 計算個數
nunique() 去掉重複值後進行計數
df=pd.DataFrame({'user':['Alice','Tom','Bob','Alice','Bob','Alice'],'money':range(6)})
df.groupby(['user']).sum()
結果如下:
2.reset_index()
将groupby後的分組結果轉換為DataFrame對象,進而儲存。
這裡主要是針對多列進行分組後
最後可以看到通過reset_index後列名也平攤開了
3. agg(function)
對groupby後的某一列或者多列運用function函數,可同時作用于一個列或者多個列
def handle_transactions_data(name,data):
pick_agg_cols={
'purchase_amount':['sum'],
'merchant_id':['count'],
'installments':['sum'],
'city_id':['count'],
'merchant_category_id':['nunique'],
'purchase_date':['min','max'],
'card_id':['size']
}
data_grouped= data.groupby(data['card_id']).agg(pick_agg_cols)
data_grouped.columns=[name+'_'+'_'.join(col).strip() for col in data_grouped.columns.values]
return data_grouped
4. apply()
apply應用于DataFrame的各個列,後者僅作用于指定的列。
df.groupby('purchase_amount').apply(np.sum)