相关疑难解决方法(0)

float()的文字无效:0.000001,如何修复错误?

我有一个包含3列数据的.csv文件.我需要创建一个新的输出文件,其中包含原始文件中第一列和第三列的特定数据集.第三列包含十进制值,我相信在这种情况下我使用了python的float()功能.我试过以下代码:

in_file = open("filename.csv", "r")

out_file = open("output.csv", "w")

while True:

    line = in_file.readline()
    if (line == ''): 
        break
    line = line.strip() 
    items = line.split(',') 
    gi_name = items[0] 
    if (gi_name.startswith("_"))
        continue
    p_value = float(items[2]) 
    if (p_value > 0.05):
        continue
    out_file.write(','.join([gene_name, str(p_value)]))
in_file.close()
out_file.close()
Run Code Online (Sandbox Code Playgroud)

当我运行上面的内容时,我收到以下错误:

错误:float()的文字无效:0.000001

值0.0000001是我的第三列数据集中的第一个值,我想代码不能读取超出该集合但我不确定原因.我是python的新手,并不真正理解为什么我收到此错误或如何解决它.我已经尝试了如何输入float()的其他修改,但没有成功.有谁知道我怎么能解决这个问题?

python csv floating-point literals

3
推荐指数
1
解决办法
2万
查看次数

ValueError:float()的文字无效:读取纬度和经度数据

给出以下脚本来读取纬度,经度和幅度数据:

#!/usr/bin/env python

# Read in latitudes and longitudes
eq_data = open('lat_long')

lats, lons = [], []

for index, line in enumerate(eq_data.readlines()):
    if index > 0:
        lats.append(float(line.split(',')[0]))
        lons.append(float(line.split(',')[1]))

#Build the basemap
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np

antmap = Basemap(projection='spstere', boundinglat=-20, lon_0=-60, resolution='f')
antmap.drawcoastlines(color='0.50', linewidth=0.25)
antmap.fillcontinents(color='0.95')

x,y = antmap(lons, lats)
antmap.plot(x,y, 'r^', markersize=4)
plt.show()
Run Code Online (Sandbox Code Playgroud)

尝试阅读纬度,经度和幅度时,我收到以下错误:

Traceback (most recent call last):
  File "./basic_eqplot.py", line 10, in <module>
    lats.append(float(line.split(',')[0]))
ValueError: invalid literal for float(): -18.381  -172.320 …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

0
推荐指数
2
解决办法
1148
查看次数

标签 统计

python ×2

csv ×1

floating-point ×1

literals ×1

matplotlib ×1