2017-09-14 131 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