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
将采取最后你提供的聚合。所以下面,它会sum
在B
列,而不是使第二个。
df1.groupby('A').agg({'B':list, 'C':'sum', 'B':'sum'})
B C
A
James 30 30
John 65 65
Mary 37 37
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句