我有一个DataFrame与每个城市的人口。我想用这个州内每个城市的人口计算每个州的平均人口。
以下是数据样本:
item
我可以通过以下方式检索平均值:
State City Population State Ave
CA San Diego 10000 ??
CA Palo Alto 8000 ??
CA Marin 5000 ??
SC Columbia 4000 ??
SC Charleston 3000 ??
SC Greenville 4000 ??
但是如何为每个城市分配州平均值?
注意:我试图用这个较小的例子和上面的数据简化一个大问题,这显然不是真的。
答案 0 :(得分:2)
您可以使用transform
并将结果放在df['Avg']
In [216]: df['Avg'] = df.groupby('State')['Population'].transform('mean')
In [217]: df
Out[217]:
State City Population Avg
0 CA SanDiego 10000 7666.666667
1 CA PaloAlto 8000 7666.666667
2 CA Marin 5000 7666.666667
3 SC Columbia 4000 3666.666667
4 SC Charleston 3000 3666.666667
5 SC Greenville 4000 3666.666667
答案 1 :(得分:1)
mean = df.groupby(' State')[' Population']。mean()
df ['表示'] = df.name.apply(mean.get_value)