2017-09-14 151 views
1

我有一個數據幀我想刪除的上限和下限值和替換與平均給出每個指標的上限和下限值如下查找每組值的熊貓數據幀的平均

df = pd.DataFrame(
      {'indicator': ['indicator 1', 'indicator 1', 'indicator 2', 'indicator 2'], 
      'year':[2014,2014,2015,2015], 
      'value type': ['upper', 'lower', 'upper', 'lower'], 
      'value':[12.3, 10.2, 15.4, 13.2] 
      }, 
      index=[1,2,3,4]) 

的兩個值。

我該怎麼做?

回答

2

你可以groupbytransform通過mean

df['value'] = df.groupby('indicator')['value'].transform('mean') 

df 
    indicator value value type year 
1 indicator 1 11.25  upper 2014 
2 indicator 1 11.25  lower 2014 
3 indicator 2 14.30  upper 2015 
4 indicator 2 14.30  lower 2015 

或者,如果你想每一項指標的只有一行,使用agg

df = df.groupby('indicator').agg('mean') 
df 
      value year 
indicator    
indicator 1 11.25 2014 
indicator 2 14.30 2015 

如果你想索引的列代替,叫reset_index

df = df.reset_index() 
df 
    indicator value year 
0 indicator 1 11.25 2014 
1 indicator 2 14.30 2015