Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在读取csv时是否有跳过某些字符的方法_Python_Csv - Fatal编程技术网

Python 在读取csv时是否有跳过某些字符的方法

Python 在读取csv时是否有跳过某些字符的方法,python,csv,Python,Csv,我想用python读取CSV文件,它的浮点精度应该是9。但在某些行中,文件具有非数字字符,如 2925,0.826746422,>>0.641132847,0.732078005 2926,0.826746422,0.641132847*,0.732078005 2925,0.826746422,0.64113284700,0.732078005 如何跳过这些字符,并告诉python只考虑小数点后的9个数字 您可以在读取时清除数据 导入csv 进口稀土 数据=[] 打开('file

我想用python读取CSV文件,它的浮点精度应该是9。但在某些行中,文件具有非数字字符,如

2925,0.826746422,>>0.641132847,0.732078005
2926,0.826746422,0.641132847*,0.732078005
2925,0.826746422,0.64113284700,0.732078005

如何跳过这些字符,并告诉python只考虑小数点后的9个数字

您可以在读取时清除数据

导入csv
进口稀土
数据=[]
打开('filename.csv')作为fp:
reader=csv.reader(fp)
对于读取器中的行:
data.append([float(re.sub(r'[^0-9\.]','',v)]用于第行中的v])

如果数字太多,可以使用regex和round执行此操作:

import re
import csv

regex = re.compile(r"[^0-9.]")

with open('data.csv') as f:
    reader = csv.reader(f)
    for row in reader:
        numbers = [regex.sub("",number) for number in row] #get rid of all characters
        numbers = [round(float(number.replace(",","."),9) for number in numbers] # round value to 9 digits
        print(numbers)
输出
你是如何阅读CSV的?它是通过python内置的CSV库还是其他什么东西实现的?您想用这些行做什么?百万富翁?我想使用CSV Reader。@ JAN我想考虑一下我使用的代码,它可以读取文件,但不能更改为浮点,我想这是因为在一些地方的文件中使用了两个逗号而不是一个甚至一个点被使用的情况下。即使在某些情况下,最后一个数字被移到下一行,我如何解决这个问题。379,0.510422071,,0.20966216,0.727347636 2895,0.123935667,0.18243965.0.265266884 1135,0.032502213,0.991668447 ,0.717307047 1136,0.191534165,0.933957945,0.355540635@MasoodRasoli请参阅我的编辑,该编辑将执行以下操作。但问题是csv阅读器可能会将其拆分,因此无法工作。
[2925.0, 0.826746422, 0.641132847, 0.732078005]
[2926.0, 0.826746422, 0.641132847, 0.732078005]
[2925.0, 0.826746422, 0.641132847, 0.732078005]