2015-05-07 22 views
0

我有一個DataFrame與每個城市的人口。我想使用來自該州內每個城市的人口來計算每個州的平均人口。計算羣體平均值並將其分配給使用熊貓羣組的子羣由

這裏的數據樣本:

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   ?? 

我可以檢索與平均值:

data = pd.read_csv(/Downloads/test.csv') 

grouped = data.group_by("State") 

for k, group in grouped: 
    print grouped.mean() 

State  Population 
CA   7666.66666667 
SC   3666.66666667 

但我怎麼分配狀態平均每個城市?

注:我試圖用這個小例子和上面的數據來簡化一個大問題,這顯然不是真實的。

回答

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 
+0

賓果。謝謝。 – kevingduck

1

平均= df.groupby( '國家') '人口'。意思是()

DF [ '平均'] = df.name.apply(mean.get_value)