gpt4 book ai didi

python - 如何分组并一次加入多列的多行?

转载 作者:行者123 更新时间:2023-12-04 10:43:08 25 4
gpt4 key购买 nike

我想知道如何对单个列进行分组并在每行中连接多个列字符串。

这是一个示例数据框:

df = pd.DataFrame(np.array([['a', 'a', 'b', 'b'], [1, 1, 2, 2], 
['k', 'l', 'm', 'n']]).T,
columns=['a', 'b', 'c'])
print(df)

a b c
0 a 1 k
1 a 1 l
2 b 2 m
3 b 2 n

我试过类似的东西,

df.groupby(['b', 'a'])['c'].apply(','.join).reset_index()

b a c
0 1 a k,l
1 2 b m,n

但这不是我要求的输出,

期望的输出:

    a   b    c
0 1 a,a k,l
1 2 b,b m,n

我怎样才能做到这一点?我需要一个可扩展的解决方案,因为我要处理数百万行。

最佳答案

我认为您只需要按 b 列进行分组,然后在必要时使用 GroupBy.agg 创建应用函数的列列表:

df1 = df.groupby('b')['a','c'].agg(','.join).reset_index()
#alternative if want join all columns without b
#df1 = df.groupby('b').agg(','.join).reset_index()
print (df1)
b a c
0 1 a,a k,l
1 2 b,b m,n

关于python - 如何分组并一次加入多列的多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59840072/

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