Tengo un conjunto de datos como este:
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
y quiero agrupar estos datos para que la columna de datos “nombre” que tenga la misma “identificación” se fusione mediante un delimitador. Algo como esto:
ID Name 1 a,b,2,3 2 er,get,better 3 123,cold,warm,sweet,heat
y así.
¿Alguien puede proporcionarme una forma pythonica de hacer esto?
Usa ','.join
a un 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
Restablece el índice si necesitas esas mismas dos columnas
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
Si por alguna razón no tienes artículos de cuerda.
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