我有一个数据框,它给出了每个指标的上下值,如下所示
$AIRFLOW_HOME/dags
我想删除上限值和下限值,并将其替换为两个值的平均值。
我该怎么做?
答案 0 :(得分:3)
groupby
可以transform
和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