鱼C论坛

 找回密码
 立即注册
查看: 1363|回复: 4

[已解决]求一个pandas练习的思路!

[复制链接]
发表于 2020-9-5 11:57:43 | 显示全部楼层 |阅读模式
20鱼币
数据大致如下:
col1  col2         col3
A        a                288
A        a                288
A        a                288
B        a                166
B        a                166
B        b                188
B        b                188

根据col1,col2分组,然后根据组内成员个数,平均分对应的col3里的值,
结果大致如下:
col1  col2         col3
A        a                96
A        a                96
A        a                96
B        a                83
B        a                83
B        b                94
B        b                94

虚心请教!!!
最佳答案
2020-9-5 11:57:44
看看是不是你要的效果
import pandas as pd

a = pd.DataFrame(data={'col1': ['A', 'A', 'A', 'B', 'B', 'B', 'B'],
                       'col2': ['a', 'a', 'a', 'a', 'a', 'b', 'b'],
                       'col3': [288, 288, 288, 166, 166, 188, 188]})
print(a)
b = a.groupby(by=['col1', 'col2']).count()
print(b)
c=pd.merge(a,b,left_on=['col1', 'col2'],right_on=['col1', 'col2'])
print(c)
c['mean']=[c.loc[i,'col3_x']/c.loc[i,'col3_y'] for i in range(len(c))]
print(c)

最佳答案

查看完整内容

看看是不是你要的效果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-5 11:57:44 | 显示全部楼层    本楼为最佳答案   
看看是不是你要的效果
import pandas as pd

a = pd.DataFrame(data={'col1': ['A', 'A', 'A', 'B', 'B', 'B', 'B'],
                       'col2': ['a', 'a', 'a', 'a', 'a', 'b', 'b'],
                       'col3': [288, 288, 288, 166, 166, 188, 188]})
print(a)
b = a.groupby(by=['col1', 'col2']).count()
print(b)
c=pd.merge(a,b,left_on=['col1', 'col2'],right_on=['col1', 'col2'])
print(c)
c['mean']=[c.loc[i,'col3_x']/c.loc[i,'col3_y'] for i in range(len(c))]
print(c)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-5 13:31:38 | 显示全部楼层
df.groupby(['col1', 'col2']).mean() / df.groupby(['col1', 'col2']).count() 是这个意思吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-5 16:03:11 | 显示全部楼层
kylin121380 发表于 2020-9-5 13:31
df.groupby(['col1', 'col2']).mean() / df.groupby(['col1', 'col2']).count() 是这个意思吗

受教了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-5 16:03:47 | 显示全部楼层
kylin121380 发表于 2020-9-5 13:31
df.groupby(['col1', 'col2']).mean() / df.groupby(['col1', 'col2']).count() 是这个意思吗

简单易懂!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 20:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表