gpt4 book ai didi

python - 使用 groupby 后如何获取行子集的平均值?

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:06 24 4
gpt4 key购买 nike

我想获取数据框中特定列中特定行子集的平均值。

我可以用

df['C'].iloc[2:9].mean()

从我的原始 Dataframe 中获取我想要的特定行的平均值,但我的问题是我想在使用 groupby 操作后执行此操作。

我正在 build

df.groupby(["A", "B"])['C'].mean()

一旦我按 A 列和 B 列分组并得到这 11 个值的平均值,“C”中就会返回 11 个值。我实际上只想获得第 3 到第 9 个值的平均值,但理想情况下我想要做的是

df.groupby(["A", "B"])['C'].iloc[2:9].mean()

这将为每组 A、B 返回 C 列中的那 11 个值,然后找到第 3 到第 9 个值的平均值,但我知道我不能这样做。该错误建议使用 apply 方法,但我似乎无法弄清楚。

如有任何帮助,我们将不胜感激。

最佳答案

您可以在 groupby 之后使用 agg 函数,然后在每个组内进行子集并取 mean:

df = pd.DataFrame({'A': ['a']*22, 'B': ['b1']*11 + ['b2']*11, 'C': list(range(11))*2})
# A dummy data frame to demonstrate

df.groupby(['A', 'B'])['C'].agg(lambda g: g.iloc[2:9].mean())

# A B
# a b1 5
# b2 5
# Name: C, dtype: int64

关于python - 使用 groupby 后如何获取行子集的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38410490/

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