Toronto =Toronto.groupby('Postcode'['Neighbourhood'].agg([('Neighbourhood', ', '.join)]).reset_index()
3 Réponses :
Comme la relation est 1: 1, vous pouvez utiliser unique
et tout ira bien.
Neighbourhood Borough Postcode M8Z Mimico NW,The Queensway West,Royal York South West,South of Bloor [Etobicoke] M9Z Not assigned [Not assigned]
Résultat:
df.groupby('Postcode').agg({ 'Neighbourhood': ','.join, 'Borough': 'unique' })
Résolu avec
Toronto = (Toronto.groupby(['Postcode', 'Borough'])['Neighbourhood'] .agg([('Neighbourhood', ', '.join)]).reset_index())
Merci @ALollz pour le coup de pouce
Si vous voulez nettoyer un peu la syntaxe, vous pouvez faire: Toronto.groupby (['Postcode', 'Borough'], as_index = False) .Neighbourhood.agg (',' .join)
. as_index = False
fait qu'il n'est pas nécessaire de réinitialiser l'index, et comme vous avez déjà sélectionné la série de voisinage, vous pouvez simplement spécifier comment l'agréger
Une des solutions possibles consiste à ajouter Borough à la liste group-by:
Toronto.groupby(['Postcode', 'Borough']).Neighbourhood\ .agg(', '.join).reset_index()
Ne postez pas de photos de code / données . Nous ne pouvons pas copier et coller votre image. Vous avez déjà vos données dans Jupyter Notebook. Utilisez simplement
print (Toronto)
et copiez et collez le résultat de celui-ci dans votre question.Excuses. Trié!
Existe-t-il une correspondance 1: 1 entre le code postal et l'arrondissement? Si c'est le cas, ajoutez-le simplement en tant que colonne de regroupement. Sinon, spécifiez comment agréger cette colonne dans votre
agg
Oui, il y a un mappage un à un. Je ne suis pas sûr de la syntaxe pour l'ajouter en tant que colonne de regroupement. Tout ce que j'ai essayé produit des erreurs