使用Pandas read_csv以CSV格式处理额外分隔符

时间:2018-02-01 19:08:28

标签: pandas sqlite csv

我有一个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列。

1 个答案:

答案 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)