熊猫 分组

import pandas as pd
import numpy as np

group by : split apply combine

dic_gpa = {‘class’:[‘A’,‘B’,‘A’,‘B’],
‘sname’:[‘tom’,‘kite’,‘tom’,‘hanmeimei’],
‘math’:(np.random.rand(4)*100).round(),
‘english’:(np.random.rand(4)*100).round()
}

df = pd.DataFrame(dic_gpa)

smean_byclass = df.groupby([‘class’]).mean()
smean_byname = df.groupby([‘sname’]).mean()
lambda_name = df.groupby(lambda x:‘even class’ if x%2==0 else ‘odd class’).mean()

agg_byClassSname = df.groupby([‘class’,‘sname’]).agg([np.mean,np.min])
agg_byClassSname_different = df.groupby([‘class’,‘sname’]).agg({‘math’:np.mean,‘english’:np.max})

mean_minus = df.groupby(‘class’).apply(lambda x:x[‘math’].mean()-x[‘english’].mean())

transformer = df.groupby(‘class’).transform(np.mean)

combine_concat = pd.concat([df,transformer],axis=1)

print(df)
print(’*’*100)
#print(smean_byclass)
print(smean_byclass)

combine_merge = pd.merge(df,smean_byclass,how=‘left’,on=[‘class’])

print(combine_merge)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值