将具有相同 ID 的多行(具有一些非字符串值)合并到 pandas 中的一个分隔行中

2024-04-20

我有一个这样的数据集:

ID    Name
 1       a
 1       b
 1       2
 1       3
 2      er
 2     get
 2  better
 3     123
 3    cold
 3    warm
 3   sweet
 3    heat

我想将这些数据分组在一起,以便使用分隔符将具有相同“id”的数据列“name”合并在一起。像这样的东西:

ID                      Name
 1                   a,b,2,3
 2             er,get,better
 3  123,cold,warm,sweet,heat

等等。

谁能给我提供一种Python式的方法来做到这一点?


Use ','.join in a groupby

df.groupby('ID').Name.apply(','.join)

ID
1                     a,b,c,d
2               er,get,better
3    hot,cold,warm,sweet,heat
Name: Name, dtype: object

如果您需要相同的两列,请重置索引

df.groupby('ID').Name.apply(','.join).reset_index()

   ID                      Name
0   1                   a,b,c,d
1   2             er,get,better
2   3  hot,cold,warm,sweet,heat

如果由于某种原因您有非字符串项目

df.assign(Name=df.Name.astype(str)).groupby('ID').Name.apply(','.join).reset_index()

   ID                      Name
0   1                   a,b,c,d
1   2             er,get,better
2   3  hot,cold,warm,sweet,heat
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将具有相同 ID 的多行(具有一些非字符串值)合并到 pandas 中的一个分隔行中 的相关文章

随机推荐