[英]calculating sum of csv file in Python 3.6.2
我正在使用Python 3.6.2,并且具有如下所示的csv文件:
STATE,RATE,DEATHS
IA,4.2,166
NH,4.2,52
MA,4.3,309
CA,4.4,"2,169"
CO,4.6,309
ID,4.6,106
NY,4.6,"1,087"
VT,4.6,27
NJ,4.7,487
WA,4.9,432
我正在尝试计算“比率”列的总和。 但是,在下面的当前代码中,我不断收到错误消息:“ TypeError:'float'对象不可迭代”。 我对Python相当陌生,不确定我在做什么错。
import csv
with open('infant_mortality.csv', 'r') as f:
next(f) #skips the first row
for row in csv.reader(f):
total = sum(float(row[1]))
print('The total is {}'.format(total))
谢谢您的帮助!
怎么样:
import pandas as pd
df = pd.read_csv('infant_mortality.csv')
print('The total is {}'.format(df['RATE'].sum()))
您使用的是sum()
,它需要像列表那样的可迭代对象,只需将起始值添加到合计中,然后将所有值合计成具有total += value
import csv
with open('infant_mortality.csv', 'r') as f:
next(f) #skips the first row
total = 0
for row in csv.reader(f):
total += float(row[1])
print('The total is {}'.format(total))
sum()期望有一个可迭代的对象,但是当您编写sum(float(row [1]))时 ,row [1]是单个值,不可像列表一样进行迭代(在您的情况下为“ row”列表)
来自python文档
sum(iterable [,开始])
求和从左到右开始,迭代的项返回总数。 start默认为0。iterable的项目通常是数字,并且起始值不允许为字符串。
使用示例sum()
list_number = [2,3,5]
print sum(list_number)
10
也许下面的代码可以为您提供帮助。
import csv
total = 0
with open('infant_mortality.csv', 'r') as f:
next(f) #skips the first row
for row in csv.reader(f):
total += float(row[1])
print('The total is {}'.format(total))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.