我正在尝试从CSV文件的列表中获取特定列的总数。我可以选择列并删除标题,但是我不能将所有值加起来。
import csv
projectFile = open('data.csv')
projectReader = csv.reader(projectFile)
projectData = list(projectReader)
sum = 0
for amount in projectData[1:]:
amount = amount[1]
print(amount)
我尝试了sum(amount)
无效的操作,然后尝试添加全局变量sum = 0
,并将列表的float
添加到其中,例如:{{1} },并出现错误。我不能为此使用熊猫或映射。
编辑:
CSV示例-
答案 0 :(得分:2)
这是一个示例,该示例根据3x3矩阵(存储为列表列表)计算第三列的总和。请注意,列索引2对应于第三列:
col = 2
my_matrix = [[1,2,3],[4,5,6],[7,8,9]]
sum = sum([row[col] for row in my_matrix])
print(sum)
输出为:
18
(计算为3 + 6 + 9)
用于字符串矩阵(基于@mpstring的评论)
只需添加float()即可将每个字符串转换为float。
col = 2
mymat = [['1','2','3'],['4','5','6'],['7','8','9']]
sum = sum([float(row[col]) for row in mymat])
print(sum)
给出示例data.csv (基于@mpstring更新的问题)
import csv
projectFile = open('data.csv')
projectReader = csv.reader(projectFile)
next(projectReader)
projectData = list(projectReader)
sum = sum(float(row[1]) for row in projectData)
print(sum)
输出为
216.61