[英]Get all values for group in pandas groupby
Pandas groupby 提供first
和last
来获取组中的第一个和最后一个值。 有没有办法将组中的所有值作为列表获取? 我想计算某些列的平均值,但在 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
将采用您提供的最后一个聚合。 所以在下面,它将对B
列sum
,而不是制作第二列。
df1.groupby('A').agg({'B':list, 'C':'sum', 'B':'sum'})
B C
A
James 30 30
John 65 65
Mary 37 37
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.