代码之家  ›  专栏  ›  技术社区  ›  Madhur Yadav

sep=“|”在数据帧中无法正常工作

  •  2
  • Madhur Yadav  · 技术社区  · 8 年前

    我使用的是python 3.6和pandas版本0.20.3。

    我有一个文本为-

    17727425 - 1|TM000002|38|cow|country|crow
    17727425 - 1|TM000002|64|international|NAME|international ltd
    17727425 - 1|TM000002|66|^ference|country|^ference
    17727425 - 1|TM000002|80|"|gulf "|DRWENAME|"|gulf "
    

    我制作数据帧的代码是-

    df = pd.read_csv(filepath, sep="|", error_bad_lines=False, encoding="ISO-8859-1")
    

    因为我在用 sep = '|' ,它应该用“|”分隔文本,但在文本的最后一行,它使用 " 我得到的结果是-

    17727425 - 1 TM000002 38 cow country crow 0 17727425 - 1 TM000002 64 international NAME international ltd 1 17727425 - 1 TM000002 66 ^ference country ^ference 2 17727425 - 1 TM000002 80 |gulf DRWENAME |gulf

    我想知道最后一句为什么 sep=“|” 工作不正常,应该采取什么措施来消除这个问题。

    1 回复  |  直到 8 年前
        1
  •  4
  •   Giacomo Catenazzi    8 年前

    问题不在于 sep='|' ,但是双引号。

    默认情况下,熊猫不会在字符串中拆分字段。因此,您可以更改引号字符串,例如添加 quotechar="'" (或 \0 或文件中未使用的任何字符)。

    也可以使用“添加此参数”: quoting=QUOTE_NONE ,忽略任何引用字符。