Python:无法将字符串转换为浮点错误

Python:无法将字符串转换为浮点错误,python,string,numpy,Python,String,Numpy,我有[NEAR_DIST]的CSV文件(问题有点不清楚。 我的假设是,您有以下表格中的一些数据: 01,02,03,04,05,06,07,08,09,… 11,12,13,14,15,16,17,18,19,… 21,22,23,24,25,26,27,28,29,… 你想在第7列中找到元素的总和,在这个例子中是7+17+27+ 这应该起作用: import numpy data = numpy.genfromtxt("a.csv", delimiter=",") data[:, 6].sum

我有[NEAR_DIST]的CSV文件(问题有点不清楚。 我的假设是,您有以下表格中的一些数据:

01,02,03,04,05,06,07,08,09,…
11,12,13,14,15,16,17,18,19,…
21,22,23,24,25,26,27,28,29,…
你想在第7列中找到元素的总和,在这个例子中是7+17+27+

这应该起作用:

import numpy
data = numpy.genfromtxt("a.csv", delimiter=",")
data[:, 6].sum() # 6 because indices start from 0 in python

这个问题有点不清楚。 我的假设是,您有以下表格中的一些数据:

01,02,03,04,05,06,07,08,09,…
11,12,13,14,15,16,17,18,19,…
21,22,23,24,25,26,27,28,29,…
你想在第7列中找到元素的总和,在这个例子中是7+17+27+

这应该起作用:

import numpy
data = numpy.genfromtxt("a.csv", delimiter=",")
data[:, 6].sum() # 6 because indices start from 0 in python

如果我正确理解了您的问题和代码,则您希望阅读.csv文件中的第七行。您的第[7]行语句不会这样做。如果您这样做:

for row in readCSV:
您将浏览.csv文件中的所有行,一次读取一行并将其存储为
。使用分隔符(在本例中为逗号),逗号之间的所有内容都将添加到列表中。例如,csv文件中的
“0,12,23,37.154444”
行将在以下列表中结束:
[0,12,23,37.154444]
包含5个元素

当您访问
行[7]
时,您正在循环中获取当前
行的8列(请记住Python从0开始计数)

此外,您在开头定义的
distance
变量将被readCSV:
循环中
for行中的
distance
变量覆盖

因此,如果您想要文件中的第七行,我建议使用一个计数器来计算您已通过的行数。如果它已到达第七行,它只需将该行的所有数字相加并存储:

import csv
with open('C:\\test.csv') as csvfile:
    readCSV = csv.reader(csvfile, delimiter=',')

    # Create counter variable to count rows
    rowCounter = 0

    # Create distance variable to sum distances later
    distance = 0

    # Go through each row in the csv file
    for row in readCSV:
        rowCounter += 1 # Add one to the rowCounter
        if rowCounter == 7: # If rowCounter is seventh row
            for e in row: # For every element in this row
                distance += float(e) # Add the float of that element to distance

如果这没有帮助,我建议您的问题更加具体。

如果我正确理解您的问题和代码,您希望阅读.csv文件中的第七行。您的第[7]行语句不会这样做。如果您这样做:

for row in readCSV:
您将浏览.csv文件中的所有行,一次读取一行并将其存储为
。使用分隔符(在本例中为逗号),逗号之间的所有内容都将添加到列表中。例如,csv文件中的
“0,12,23,37.154444”
行将在以下列表中结束:
[0,12,23,37.154444]
包含5个元素

当您访问
行[7]
时,您正在循环中获取当前
行的8列(请记住Python从0开始计数)

此外,您在开头定义的
distance
变量将被readCSV:
循环中
for行中的
distance
变量覆盖

因此,如果您想要文件中的第七行,我建议使用一个计数器来计算您已通过的行数。如果它已到达第七行,它只需将该行的所有数字相加并存储:

import csv
with open('C:\\test.csv') as csvfile:
    readCSV = csv.reader(csvfile, delimiter=',')

    # Create counter variable to count rows
    rowCounter = 0

    # Create distance variable to sum distances later
    distance = 0

    # Go through each row in the csv file
    for row in readCSV:
        rowCounter += 1 # Add one to the rowCounter
        if rowCounter == 7: # If rowCounter is seventh row
            for e in row: # For every element in this row
                distance += float(e) # Add the float of that element to distance

如果这没有什么帮助,我建议在你的问题中更具体一些。

文件中的几行示例将非常有用。@Marcin所说的内容以及行的确切错误,这将有助于想回答你的人。此外,使用
numpy.genfromtxt
而不是python
csv
更自然、更专业bably更快的性能文件中的几行示例将非常有用。@Marcin所说的以及行中的确切错误,这将有助于回答您的问题。此外,使用
numpy.genfromtxt
而不是python
csv
可以获得更自然、可能更快的性能