gpt4 book ai didi

python-3.x - Pandas Groupby 与 Group Concat 用于整数值

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

我的 Pandas 数据框看起来像这样,我希望按键对其进行分组并连接 id 的逗号分隔并创建一个新的数据框。现在这里的问题是 id 列是整数。

df:
key id
0 abc 5073138
1 abcd 5025923
2 abc 7453197
3 abcd 5032121
4 abcd 5032121
5 abc 5032121


new df:

key id
0 abc 5073138,7453197,5032121
1 abcd 5025923,5096021,5032121

我尝试将 group by 与 apply 和聚合一起使用,但没有用
df.groupby('key').apply(lambda x: ','.join(x.id))

df.groupby('key').agg({'id' : lambda x: ', '.join(str(x))})

最佳答案

您的第一个解决方案几乎奏效:

df.groupby('key').id.apply(lambda x: ','.join(map(str, x)))

如果将 id 列提前转换为 str 就更简单了:
df.id = df.id.astype(str)
df.groupby('key').id.apply(','.join)

虽然我个人不喜欢 apply,但没有它你可能会得到更好的表现:
df.id = df.id.astype(str)
df.id += ',' # add trailing commas
df.groupby('key').id.sum().str[:-1] # sum of strs is concatenation

这给出了相同的结果,但是以完全矢量化的方式。

关于python-3.x - Pandas Groupby 与 Group Concat 用于整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47852392/

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