5 votes

Python Résultats du compteur vers un fichier csv

Cette question est basée sur ma question précédente : Aide Python pour les listes (incrémenter le nombre, ajouter)

Je parviens à obtenir la sortie suivante lorsque j'exécute la commande print c ;

Counter({(u'New Zealand', 174.885971, -40.900557): 1, (u'Ohio, USA', -82.90712300000001, 40.4172871): 1})

C'est exactement ce que je veux et maintenant j'aimerais savoir comment je peux écrire cela dans un fichier csv. Chaque ligne représentera une nouvelle localisation, lon/lat, count.

Je veux passer par le compteur et accéder à ces pièces : writer.writerow(["A", "B", "C"]) ;

A est la localisation comme la Nouvelle-Zélande, B est la lat/lon, C est le nombre d'apparitions,

Comment puis-je accéder aux résultats du comptage et obtenir les pièces souhaitées ? Je vous remercie.

8voto

Martijn Pieters Points 271458

A Counter est une sous-classe de la norme dict vous pouvez parcourir les éléments du dictionnaire en boucle à l'aide de la fonction .iteritems() (python 2) ou simplement .items() (python 3) :

for key, count in your_counter.iteritems():
    location, lat, long = key
    writer.writerow([location, lat, long, count])

Ceci écrit quatre avec deux colonnes distinctes pour la latitude et la longitude. Si vous souhaitez les combiner en une seule colonne, par exemple sous la forme d'une chaîne avec une barre oblique entre les deux coordonnées, il vous suffit d'utiliser le formatage des chaînes de caractères :

for key, count in your_counter.iteritems():
    location, lat, long = key
    writer.writerow([location, '{}/{}'.format(lat, long), count])

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X