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