我有一个这样的数据集:
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式的方法吗?
最佳答案
在groupby
中使用','.join
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
关于python - 将具有相同 ID 的多行(具有一些非字符串值)合并到 pandas 中的一个分隔行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52433293/