gpt4 book ai didi

python - 合并特定列上的重复行

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:32 24 4
gpt4 key购买 nike

如果一列中有重复项,我正在尝试合并数据框的行。数据框如下所示。

Name   Code   X   Y
A 123 10 11
B 456 12 13
C 123 15 16

我想结合代码。所以如果Code相同,将其他数据合并,用逗号隔开。生成的 df 将如下所示:

Name   Code    X       Y
A,C 123 10,15 11,16
B 456 12 13

我的方法如下:

    df = df.groupby(['Name','Code','Y'])['X'].astype(str).apply(', '.join).reset_index() 

df = df.groupby(['Name','Code','X'])['Y'].astype(str).apply(', '.join).reset_index()

我收到以下错误:

"Cannot access callable attribute 'astype' of 'SeriesGroupBy' objects, try using the 'apply' method"

我一直无法弄清楚如何使用 apply 转换为类型 str,有什么提示吗?

最佳答案

Code 列创建索引以避免转换为字符串,然后转换所有列并通过索引函数 join 聚合:

df = df.set_index('Code').astype(str).groupby(level=0).agg(', '.join).reset_index()
#pandas 0.24+
#df = df.set_index('Code').astype(str).groupby('Code').agg(', '.join).reset_index()
print (df)
Code Name X Y
0 123 A, C 10, 15 11, 16
1 456 B 12 13

关于python - 合并特定列上的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55123657/

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