gpt4 book ai didi

python - 添加 GroupBy 平均结果作为 Pandas 中的新列

转载 作者:行者123 更新时间:2023-11-28 21:39:57 24 4
gpt4 key购买 nike

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

    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])

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

我该怎么做?

最佳答案

您可以通过meangroupbytransform

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

关于python - 添加 GroupBy 平均结果作为 Pandas 中的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46212813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com