尝试找到2个csv列之间的总和 - Python

时间:2016-03-01 12:03:01

标签: python csv sum

我有一个csv文件,我试图找到2列之间的总和。 csv文件看起来像这个csv file

我希望找到每行的行[2]和行[3]之间的差异,然后将其添加到总和中。我的代码看起来像这样:

senti_results = 0
concept_results = 0


for row in inputTweets:
    senti_results = senti_results + float((row[2]) - (row[3]))
    concept_results = concept_results + float((row[2]) -(row[5]))

但我有以下错误

File "C:/Users/nelli_000/PycharmProjects/finaltest/results.py", line 15, in <module>
    senti_results = senti_results + float((row[2]) - (row[3]))
TypeError: unsupported operand type(s) for -: 'str' and 'str'
谁能帮助我吗?提前谢谢!!!

3 个答案:

答案 0 :(得分:2)

您尝试减去两个字符串,然后将其转换为浮点数,首先尝试将字符串转换为浮点数。像这样:

变化

float((row[2])-(row[3])) 

float(row[2])-float(row[3])

答案 1 :(得分:1)

使用pandas。

import pandas
csvfile = pandas.read_csv('path/to/csv/file')
result = csvfile['row_x'] + csvfile['row_y']

其中 row_x row_y 是要汇总的列的标题。您可能必须使用pandas.read_csv()中的 dtype 参数设置数据类型。

来源:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

答案 2 :(得分:0)

你错过了[3]&amp;行的浮动函数行[5]

senti_results = 0
concept_results = 0


for row in inputTweets:
    senti_results = senti_results + float((row[2]) - float(row[3]))
    concept_results = concept_results + float((row[2]) -float(row[5]))