Somme d'une colonne csv en python
Je suis en train de faire un somme d'une colonne dans un fichier csv. Le fichier ressemble à ceci:
Date Value
2012-11-20 12
2012-11-21 10
2012-11-22 3
Cela peut être dans la gamme de plusieurs centaines de lignes. J'ai besoin d'obtenir le total de la Valeur (dans ce cas, il serait 25) imprimé sur un terminal. J'ai jusqu'à présent ont un peu de code, mais c'est ce qui a beaucoup plus petite figure qu'il doit faire le total. Lors d'un dépannage, j'ai fait une impression de la somme et constaté que, au lieu d'additionner les 12 + 10 + 3 il fait des sauts de chiffres dans chaque colonne et de la somme qu'1 + 2 + 1 + 0 + 3, qui, évidemment, est égal à un beaucoup plus petit total. Voici mon code, si quelqu'un pourrait faire une recommandation serait génial!
with open("file.csv")) as fin:
headerline = fin.next()
total = 0
for row in csv.reader(fin):
print col # for troubleshooting
for col in row[1]:
total += int(col)
print total
OriginalL'auteur janecs | 2012-11-22
Vous devez vous connecter pour publier un commentaire.
La
csv
module passe en boucle sur vos lignes une par une, il n'y a pas besoin de boucle sur la colonne. Juste sommeint(row[1])
:Vous pouvez utiliser un raccourci avec un générateur d'expression et de la
sum()
fonction intégrée:Noter que dans Python, les chaînes sont des séquences de trop, de sorte que lorsque vous ne
for col in row[1]:
vous êtes en boucle sur les caractères individuels derow[1]
, de sorte que pour votre première rangée, ce serait1
et2
:OriginalL'auteur Martijn Pieters