gpt4 book ai didi

python - 尝试 groupby 聚合 pandas 中的多行时缺少列

转载 作者:行者123 更新时间:2023-12-01 00:46:07 29 4
gpt4 key购买 nike

我有一个包含相关信息的数据框,我想按一列(例如 id)进行分组,同一 id 的其他列用“|”连接。但是,当我运行代码时,大多数列最终都丢失了(仅出现前 3 列),并且我不知道出了什么问题。

我的代码是:

df = df.groupby('id').agg(lambda col: '|'.join(set(col))).reset_index()

例如,我的数据开头是这样的

  id   words    ... (other columns here)
0 a asd
1 a rtr
2 b s
3 c rrtttt
4 c dsfd

我想要

id               ... (other columns here)
a asd|rtr
b s
c rrtttt|dsfd

而且我的所有其他专栏也以类似方式分组。现在,我的其余列​​没有出现在我的输出数据集中。不知道出了什么问题。谢谢!

最佳答案

预先转换为字符串,然后可以通过使用 agg(set)applymap 来避免 lambda:

df.astype(str).groupby('id').agg(set).applymap('|'.join)
<小时/>

最小可验证示例

df = pd.DataFrame({
'id': ['a', 'a', 'b', 'c', 'c'],
'numbers': [1, 2, 2, 3, 3],
'words': ['asd', 'rtr', 's', 'rrtttt', 'dsfd']})
df

id numbers words
0 a 1 asd
1 a 2 rtr
2 b 2 s
3 c 3 rrtttt
4 c 3 dsfd

df.astype(str).groupby('id').agg(set).applymap('|'.join)

numbers words
id
a 1|2 asd|rtr
b 2 s
c 3 rrtttt|dsfd

关于python - 尝试 groupby 聚合 pandas 中的多行时缺少列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56959829/

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