最一般化的groupby 方法是apply.

tips=pd.read_csv('tips.csv')
tips[:5]

pandas groupby 分组操作-LMLPHP

新生成一列

tips['tip_pct']=tips['tip']/tips['total_bill']
tips[:6]

pandas groupby 分组操作-LMLPHP

根据分组选出最高的5个tip_pct值

def top(df,n=5,column='tip_pct'):
return df.sort_index(by=column)[-n:]
top(tips,n=6)

pandas groupby 分组操作-LMLPHP

对smoker分组并应用该函数

tips.groupby('smoker').apply(top)

pandas groupby 分组操作-LMLPHP

05-21 10:16