在pandas数据帧中查找每个组的值的平均值

时间:2017-09-14 07:16:52

标签: python pandas dataframe group-by mean

我有一个数据框,它给出了每个指标的上下值,如下所示

$AIRFLOW_HOME/dags

我想删除上限值和下限值,并将其替换为两个值的平均值。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

groupby可以transformmean

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