无法使用熊猫read_csv正确读取报价

时间:2020-05-11 22:06:57

标签: python pandas

我有一个文件test.tsv,其中一些行带有引号,并且基本上跳过了使用新行字符作为新行指示符的停止。因此,如果我有文件

" m     1
what does comoda mean   1
the poke co     1
dmf     1
"g      1

我用

test = pd.read_csv("test.tsv", 
                  sep='\t')

我将所有行都作为一行

 m\t1\nwhat does comoda mean\t1\nthe poke co\t1\ndmf\t1\ng  1

我想保持所有行完整并获取输出

" m     1
what does comoda mean   1
the poke co     1
dmf     1
"g      1

是否有解决双引号问题的方法?无论我在哪里打开双引号,我都会有多行作为单行出现,直到有双引号将其关闭为止。之后,将正确解释行。

1 个答案:

答案 0 :(得分:1)

您可以使用pandas.read_csvquoting关键字参数来控制引号的解析。在您的情况下,您可以像这样禁用引号:

>>> import pandas as pd
>>> import csv

>>> pd.read_csv("test.tsv", sep='\t', quoting=csv.QUOTE_NONE)                 

                     " m  1
0  what does comoda mean  1
1            the poke co  1
2                    dmf  1
3                     "g  1

请注意,第一行被解释为列标题。通过header=None可以防止这种情况。