Pandas Groupby Apply&Agg

import pandas as pd
import numpy as np
df = pd.DataFrame({
    'A' : [1, 1, 2, 2,1, 2, 2, 2],
    'B' : [15,14,15,12,13,14,15,16]})

# apply
df.groupby('A').apply(lambda x: x.describe()).reset_index()
df.groupby('A').apply(lambda x: x.sort_values('B').head(2)) # 组内排序,topn

# agg
df.groupby("A").agg([np.sum, np.mean, np.std]).rename(columns={'sum': 'foo','mean': 'bar','std': 'baz'}) # 一行多聚合函数
df.groupby("A").agg([lambda x: x.max() - x.min()]) # 一行自定义聚合函数
df.groupby("A").agg({'A': np.sum,'B': lambda x: np.std(x, ddof=1)}) # 多行分别一个聚合行数

其他

还有一种求topn的方法

df.sort_values(['class','score'],ascending=[1,0],inplace=True) # 首先对全局排序
grouped = df.groupby(['class']).head(2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值