【问题标题】:python-import csv with decimal valuepython-import带有十进制值的csv
【发布时间】: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 将值读取为字符串。这就是为什么当我尝试使用浮动时它不起作用

标签: python csv decimal exponent


【解决方案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+ ', '', '', '', '', '']]
猜你喜欢
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-04
  • 2020-11-22
  • 2019-04-18
  • 1970-01-01
  • 2014-10-23
相关资源
最近更新 更多