gpt4 book ai didi

python - 获取 pandas groupby 中组的所有值

转载 作者:行者123 更新时间:2023-12-01 21:51:59 26 4
gpt4 key购买 nike

Pandas groupby 提供了 firstlast 来获取组中的第一个和最后一个值。有没有办法将组中的所有值作为列表获取?我想计算某些列的平均值,但在 pandas groupby 操作中获取其他列的所有值

        df_points = df_points.groupby(['field_id', 'Year']).agg({'Added_by': 'first',
'Crop': 'first',
'lat': 'first',
'lon': 'first',
'was': np.nanmean,
'geometry': 'first'})

在此示例中,我想获取每个组的 was 列的所有值(而不是 nanmean)

最佳答案

我想你可以调用list

因此在您的 agg() 中它将是 'was':list

例子:

df1 = pd.DataFrame({'A' : ['James', 'Mary', 'John', 'John'],
'B' : [30, 37, 30, 35],
'C' : [30, 37, 30, 35]})

df1.groupby('A').agg({'B':list, 'C':'sum'})

B C
A
James [30] 30
John [30, 35] 65
Mary [37] 37

需要注意的一件事是,您可以对每列进行一次聚合。 agg 将采用您提供的last 聚合。所以在下面,它将对 B求和,而不是生成第二个列。

df1.groupby('A').agg({'B':list, 'C':'sum', 'B':'sum'})

B C
A
James 30 30
John 65 65
Mary 37 37

关于python - 获取 pandas groupby 中组的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59201061/

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