gpt4 book ai didi

pandas - 如何在一次遍历行中将多列聚合为集合

转载 作者:行者123 更新时间:2023-12-02 09:14:39 24 4
gpt4 key购买 nike

给定数据框:

   a  b  c
G1 1 6
G1 2 7
G2 1 7
G2 3 8
G2 4 9
G3 5 9

我想将行聚合为:

            b          c
a
G1 {1, 2} {6, 7}
G2 {1, 3, 4} {8, 9, 7}
G3 {5} {9}

实现这一目标的方法之一是:

df = pd.DataFrame ({'a':['G1','G1','G2','G2','G2','G3'], 'b':[1,2,1,3,4,5], 'c':[6,7,7,8,9,9]})
df_agg1 = df.groupby ('a')['b'].apply (set)
df_agg2 = df.groupby ('a')['c'].apply (set)
pd.concat ([df_agg1, df_agg2], axis = 1)

但是,对于每个附加列,这将需要单独遍历行。

我想知道是否有更有效的方法来实现这一目标?

最佳答案

使用groupby.agg:

df.groupby('a').agg(lambda x: set(x))
Out:
b c
a
G1 {1, 2} {6, 7}
G2 {1, 3, 4} {8, 9, 7}
G3 {5} {9}

关于pandas - 如何在一次遍历行中将多列聚合为集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48349447/

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