在列表中将CSV导入为float(Python 3.5)

时间:2016-06-13 12:05:06

标签: python csv import

我需要导入一个csv文件,其中包含大约1.000.000个数字。它们都用小数(,)分隔,所以:1,2,3,4,...

他们只是在文件中轻松订购:没有空白没有段落。

这是我的实际代码:

import statistics
import csv

with open('test.csv', 'r') as f:
    reader = csv.reader(f)
    zahlenliste = list(reader)

print(zahlenliste)

# x = statistics.mean(zahlenliste)
# print(x)

我尝试了很多代码,就像在stackoverflow上一样,但是我无法在没有任何错误的情况下执行它。

列表中的所有数字,我希望算术平均值作为结果(在评论中是实际的)。使用print(zahlenliste)我想查看列表的内容实际上是什么样子:

[['1', '2', '3', '4', '5']]

你愿意帮助我,只需添加正确的函数将数字导入为float,以便在arithmetic.mean函数中使用它吗?

1 个答案:

答案 0 :(得分:2)

zahlenliste中的项目是字符,您需要将它们转换为数字(intfloat)。 list comprehension在这里派上用场了:

zahlenliste = [[int(item) for item in line] for line in reader]

现在你有一个列表列表:内部列表包含一行的值,外部列表代表行。 如果您需要计算每一行的平均值,请使用另一个列表推导:

mittelwerte = [statistics.mean(line) for line in zahlenliste]