Python 如何在读取csv文件之前删除该文件的双引号?

Python 如何在读取csv文件之前删除该文件的双引号?,python,pandas,Python,Pandas,我得到以下错误: pandas.errors.ParserError:“|”应在“”之后出现” 原因是第一行有不应该出现的“: "Name|Kind|Color|Price 我尝试了以下方法: `pd.read_csv(filename, sep='|', usecols=fields, engine='python')` 这会产生上述错误 pd.read_csv(filename, sep='|', usecols=fields, engine='python', quotech

我得到以下错误:

pandas.errors.ParserError:“|”应在“”之后出现”

原因是第一行有不应该出现的

"Name|Kind|Color|Price
我尝试了以下方法:

`pd.read_csv(filename, sep='|', usecols=fields, engine='python')`
这会产生上述错误

pd.read_csv(filename, sep='|', usecols=fields, engine='python', quotechar='"', error_bad_lines=False)
这不起作用,因为它删除了我需要的整行,因为它是列标题

有没有办法在不重写文件的情况下修复此问题?可能将其读入字符串并删除
“,
,但如何使用以下内容读取该字符串

pd.read_csv(filename, sep='|', usecols=fields, engine='python')

我不完全确定您的问题,但给出了如下csv文件:

"Name|Kind|Color|Price
alex|robot|braun|100$
然后,以下代码将删除任何前导“#”(如果存在):

将熊猫作为pd导入
进口稀土
数据帧([
重新匹配(r'*(?P.*),第行)
.集团(“行”)
.split(“|”)
对于打开的行(“tmp.csv”).readlines()
])
# 
#       0      1      2      3
#0名称种类颜色价格
#1亚历克斯·布劳恩100$

我不能完全确定您的问题,但给出了如下csv文件:

"Name|Kind|Color|Price
alex|robot|braun|100$
然后,以下代码将删除任何前导“#”(如果存在):

将熊猫作为pd导入
进口稀土
数据帧([
重新匹配(r'*(?P.*),第行)
.集团(“行”)
.split(“|”)
对于打开的行(“tmp.csv”).readlines()
])
# 
#       0      1      2      3
#0名称种类颜色价格
#1亚历克斯·布劳恩100$

您理解这个问题

分别阅读第一行(请参阅) 获得行后,删除双引号并使用分隔符拆分行

# Initialize your separator and filename
sep = '|'
filename = 'some.csv'

# Read the first line and remove the double quote

with open(filename, newline='') as f:
  reader = csv.reader(f)
  row1 = next(reader)  
  cols = row1.replace('"','').split(sep)

使用
cols
列表,执行pandas.read\u csv,跳过第一行(无标题行),并使用刚才提取的
cols
列表指定列名

df = pd.read_csv(filename, 
                 sep=sep, 
                 skiprows=1, 
                 header=0, 
                 names=cols, 
                 engine='python')


read_csv假设您要使用第一行中由分隔符定义的所有列。如果您只想使用子集,则需要调整
cols
列表,并且需要指定
use_cols

您了解这个问题

分别阅读第一行(请参阅) 获得行后,删除双引号并使用分隔符拆分行

# Initialize your separator and filename
sep = '|'
filename = 'some.csv'

# Read the first line and remove the double quote

with open(filename, newline='') as f:
  reader = csv.reader(f)
  row1 = next(reader)  
  cols = row1.replace('"','').split(sep)

使用
cols
列表,执行pandas.read\u csv,跳过第一行(无标题行),并使用刚才提取的
cols
列表指定列名

df = pd.read_csv(filename, 
                 sep=sep, 
                 skiprows=1, 
                 header=0, 
                 names=cols, 
                 engine='python')

read_csv假设您要使用第一行中由分隔符定义的所有列。如果您只想使用子集,则需要调整
cols
列表,并且需要指定
use_cols