【发布时间】:2017-10-07 18:28:15
【问题描述】:
我得到一个 csv 文件,其中包含从 800 到 3000 的数字。问题是大于千的数字中有逗号,例如1,227 或 1,074 或 2,403。 当我想使用 scipy 或 numpy 计算它们的均值、方差或标准差时,出现错误:ValueError:无法将字符串转换为浮点数:'1,227'。如何将它们转换为数字,以便我可以对它们进行计算。 CSV 文件不应更改,因为它是只读文件。
【问题讨论】:
-
您没有显示任何代码。有很多方法可以做到这一点,具体取决于您在阅读 csv 时的实际方法
-
这不是格式问题,而是阅读问题 - 如何将
csv加载到数组中。 stackoverflow.com/questions/6633523/… 有replace和locale解决方案。 -
写一个不带逗号的新版本文件怎么样?
tr -d ',' < originalFile.csv > noCommas.csv? -
my_string=[val[2] for val in csvfile] my_float=[float(my_string.replace(',', '')) for i in my_string)] 这就是我想要的做。所以 my_string 有字符串列表。例如带逗号的数字。我正在尝试转换为可以替换的 my_float 。由于它是字符串列表,因此此代码不起作用。
标签: python csv numpy string-formatting number-formatting