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
aggOui, 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