熊猫groupby聚合按元素列表添加

Kermit754:

我有一个熊猫数据框,如下所示:

X                      Y
71455  [334.0,  319.0,  298.0,  323.0]
71455  [3.0,  8.0,  13.0,  10.0]
57674  [54.0,  114.0,  124.0,  103.0]

我想执行一个聚合groupby,以元素方式添加存储在Y列中的列表。我尝试过的代码:

df.groupby('X').agg({'Y' : sum})   

结果如下:

                                                   Y
X                                                       
71455  [334.0,  319.0,  298.0,  323.0, 75.0,  55.0,  ...

因此,它已将列表串联在一起,而不是按元素进行汇总。但是,预期结果是:

X                      Y
71455  [337.0,  327.0,  311.0,  333.0]
57674  [54.0,  114.0,  124.0,  103.0]

我尝试了不同的方法,但是无法按预期工作。

Shaido-恢复莫妮卡:

可以apply在分组的数据框上使用以获取按元素的加法:

df.groupby('X')['Y'].apply(lambda x: [sum(y) for y in zip(*x)])

这产生了一个熊猫系列对象:

X
57674     [54.0, 114.0, 124.0, 103.0]
71455    [337.0, 327.0, 311.0, 333.0]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章