我有一个CSV文件,偶尔会在文本字段中包含分隔符。我没有引号字符,也无法控制如何获取此信息。
我希望能够添加额外的列,以便我可以轻松识别错误的行,然后解决它们。
我目前正在使用以下代码并收到以下错误:
for df in pd.read_csv(input_text_file, chunksize=20000, iterator=True, encoding='utf-8', sep='|', quoting=3, na_values=''):
df.names = ['RealColumns1', 'RealColumns2', 'RealColumns3', 'ExtraColumn1', 'ExtraColumn2', 'ExtraColumn3]
df.to_sql('Table', conn, if_exists='append', index=False)
错误:
23685498行预计3个字段,见4
我一直在期待,因为我添加了额外的列,当它到达带有附加分隔符的行时,它只会添加4列。
答案 0 :(得分:0)
我经过几次不同的尝试后想出来了。
似乎就像我在for循环之前定义了我的列名并声明header = None它似乎工作了。它看起来像这样:
所以我的代码现在看起来像这样:
names = ['RealColumns1', 'RealColumns2', 'RealColumns3', 'ExtraColumn1', 'ExtraColumn2', 'ExtraColumn3]
for df in pd.read_csv(input_text_file, chunksize=20000, header = None, dtype = names, iterator=True, encoding='utf-8', sep='|', quoting=3, na_values=''):
df.to_sql('Table', conn, if_exists='append', index=False)