Python 如何在读取csv文件之前删除该文件的双引号?
我得到以下错误: pandas.errors.ParserError:“|”应在“”之后出现” 原因是第一行有不应该出现的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
“
:
"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