我有一个我要导入的CSV文件,并对第二个字段求和,"收入"。这是我目前的代码,我从其他帖子拼凑而成,但无法使其工作。任何帮助将不胜感激!
错误类型:
代码:
import csv
import pandas as pd
f = open('Sample Data.csv')
f.next() #Skip record 1 aka header row
total = 0
for row in f:
total += int(row[[1]])
print total
答案 0 :(得分:0)
您必须清理数据 - 您的值中包含$
和,
个字符,因此无法转换为整数。此外,它们有一个小数部分,因此它们最好被视为浮点数。
然而,在此之前,您将文件作为纯文本文件打开 - 不是通过csv,也不是作为熊猫数据框,尽管您已导入这些模块。作为一个文本文件,你的代码没有行和列的概念 - 迭代器中的每个row
只是一个简单的字符串。
这里修复了这些问题 - 将其作为csv读取,并清理 - 在转换之前用空字符串替换2个有问题的字符:
with open('Sample Data.csv', 'r') as f:
reader = csv.reader(f)
reader.next() # skipping the header row
total = 0
for row in reader:
value = row[1].replace('$', '').replace(',', '') # and any other replacements your data may need
value = float(value)
# value = int(value) # if you want to treat the data as integers anyway
total += value