python-import带有十进制值的csv

Posted

技术标签:

【中文标题】python-import带有十进制值的csv【英文标题】:python-import csv with decimal value 【发布时间】:2017-04-29 22:00:23 【问题描述】:

我有这个 csv 文件,我想导入到 python。第一行是这样的

9.98E-01    7.07E+00    2.43E+00    4.63E+00    4.16E+00    -3.22E+00   2.95E-01    

我如何将这些值转换为 python 并保持它们的结构(浮点/十进制) 我试图转换为浮点数,但它不允许我将字符串转换为浮点数。

【问题讨论】:

“它不会让我将字符串转换为浮点数”是什么意思?向我们展示您使用的代码以及由此产生的错误的完整跟踪。阅读How to create a Minimal, Complete, and Verifiable example。 因为当我将值读入 python 时。 python 将值读取为字符串。这就是为什么当我尝试使用浮动时它不起作用 【参考方案1】:

float 会为你做这件事。如果您有来自 csv 输入的字符串列表,则非常容易。

>>> vals = ["9.98E-01","7.07E+00", "2.43E+00", "4.63E+00", "4.16E+00", "-3.22E+00", "2.95E-01"]
>>> map (float, vals)
[0.998, 7.07, 2.43, 4.63, 4.16, -3.22, 0.295]

【讨论】:

应该说,在 Python 3.x 中,如果你想要一个列表,则需要list(map(float, vals))。您也可以在 Python 2.x 中使用它,这是一种首选方式。 非常感谢! 我尝试了代码,但我有一个列表列表,所以没有工作。还有其他建议吗? 我的文件看起来像这样:[ ['5.79E+00', '1.92E+00', '6.95E+00', '3.24E+00', '3.97E+00 '、'1.19E+00'、'6.94E-01'、'3.61E+00'、'3.85E+00'、'-4.84E+00'、'3.03E+00'、'8.20E+00' ', '-1.31E+00', '3.18E+00', '4.81E+00'], ['-1.47E+00', '-9.52E+00', '-1.49E+01', '-6.42E+00'、'-1.01E+01'、'-5.81E+00'、'3.23E+00'、'-4.94E+00'、'7.89E+00'、'-4.239791947216163592e+ ', '', '', '', '', '']]

以上是关于python-import带有十进制值的csv的主要内容,如果未能解决你的问题,请参考以下文章

带有十进制值的 JSP 页面中的 Numberformatexception

Python如何将浮点数作为十六进制转换为十进制

使用 CsvHelper 时转换为十进制

Pandas.to_csv() 十进制参数

PHP/MySQL:导入 CSV,所有日期和十进制值都为空,零

PySpark 通过从十进制列中删除比例来写入 csv