将具有相同ID的多行(具有一些非字符串值)合并到 pandas 的一个定界行中 [英] Merge multiple rows (having some non string values) with same ID into one delimited row in pandas
本文介绍了将具有相同ID的多行(具有一些非字符串值)合并到 pandas 的一个定界行中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个像这样的数据集:
I have a dataset like this:
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"合并在一起.像这样:
and I want to group together this data such that data column "name" having same "id" is merged together using a delimiter. Something like this:
ID Name
1 a,b,2,3
2 er,get,better
3 123,cold,warm,sweet,heat
以此类推.
任何人都可以为我提供一种执行此操作的pythonic方法吗?
Can anyone provide me a pythonic way of doing this?
推荐答案
在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
如果您需要相同的两列,请重置索引
Reset the index if you need those same two columns
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
如果由于某种原因您有非字符串项目
If for some reason you have non string items
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
这篇关于将具有相同ID的多行(具有一些非字符串值)合并到 pandas 的一个定界行中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文