gpt4 book ai didi

Pandas groupby 并聚合多个列表

转载 作者:行者123 更新时间:2023-12-05 02:51:53 25 4
gpt4 key购买 nike

我有一个数据框 df,有两列。我想按一列分组并通过获取“平均列表”(所有列表元素的平均值)来聚合属于同一组的列表,如下所示:

column_a, column_b
1, [1,2,3]
1, [2,5,1]
2, [5,6,6]
3, [2,0,1]
3, [4,2,3]

列表总是具有相同的固定长度。所需的输出应如下所示:

group, avg_list
1, [1.5,3.5,2]
2, [5,6,6]
3, [3,1,2]

我知道我可以在数据帧上使用 groupby 并随后对其进行聚合,但我不确定在代码的 agg 部分中放入什么。

df.groupby('column_a').agg(?)

如果有任何建议,我将不胜感激。

最佳答案

您可以通过这种方式获得每个组内列表的平均值:

s = df.groupby("column_a")["column_b"].apply(lambda x: np.array(x.tolist()).mean(axis=0))

pd.DataFrame({'group':s.index, 'avg_list':s.values})

给予:

  group avg_list
0 1 [1.5, 3.5, 2.0]
1 2 [5.0, 6.0, 6.0]
2 3 [3.0, 1.0, 2.0]

关于Pandas groupby 并聚合多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62923238/

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