Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 用Python对csv列求和;整数和字符串的问题_Python 2.7_Csv - Fatal编程技术网

Python 2.7 用Python对csv列求和;整数和字符串的问题

Python 2.7 用Python对csv列求和;整数和字符串的问题,python-2.7,csv,Python 2.7,Csv,我在using reader中读取了一个csv文件,需要得到每列的总数。我关注了stackexchange上的几个线程,并获得了以下代码: with open ("column_formatted.csv") as csvfile2: csv_f2 = csv.reader(csvfile2, delimiter=',') for row in csv_f2: print row[1] print sum(row[1]) 第一个print语句的输

我在using reader中读取了一个csv文件,需要得到每列的总数。我关注了stackexchange上的几个线程,并获得了以下代码:

with open ("column_formatted.csv") as csvfile2:
    csv_f2 = csv.reader(csvfile2, delimiter=',')
    for row in csv_f2:
        print row[1]
        print sum(row[1])
第一个print语句的输出显示数据如下:

43.0

60.0

10.0
但print&sum函数会产生以下错误:

TypeError:不支持+:'int'和'str'的操作数类型

我尝试使用以下命令转换为整数:

print sum(int(row[1]))
但这一次我得到了一个错误:

ValueError:基数为10的int()的文本无效:“43.0”

我不知道该如何处理这些信息才能得到每列的总数。任何帮助都会非常好,
谢谢

我对csv模块不是很熟悉,但我认为您的问题在于
行[1]
实际上是一个字符串。在转换为
int
之前,可以使用
float

>>> a='1.0'
>>> int(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1.0'
>>> float(a)
1.0
>>> int(float(a))
1

谢谢,这帮我找到了问题所在。我的.csv文件底部有一个空行,这让一切都很不好。再次感谢!
>>> with open("f") as f:
...  c = csv.reader(f, delimiter=',')
...  some_var = 0
...  some_list = []
...  for r in c:
...   some_var += int(float(r[1]))
...   some_list.append(int(float(r[1])))
...
>>> some_var
6
>>> sum(some_list)
6