弱弱的佳佳 发表于 2020-9-5 11:57:43

求一个pandas练习的思路!

数据大致如下:
col1col2         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里的值,
结果大致如下:
col1col2         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': })
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 for i in range(len(c))]
print(c)

kylin121380 发表于 2020-9-5 13:31:38

df.groupby(['col1', 'col2']).mean() / df.groupby(['col1', 'col2']).count() 是这个意思吗{:10_264:}

弱弱的佳佳 发表于 2020-9-5 16:03:11

kylin121380 发表于 2020-9-5 13:31
df.groupby(['col1', 'col2']).mean() / df.groupby(['col1', 'col2']).count() 是这个意思吗

受教了!

弱弱的佳佳 发表于 2020-9-5 16:03:47

kylin121380 发表于 2020-9-5 13:31
df.groupby(['col1', 'col2']).mean() / df.groupby(['col1', 'col2']).count() 是这个意思吗

简单易懂!!!
页: [1]
查看完整版本: 求一个pandas练习的思路!