【问题标题】:How to read CSV file ignoring commas between quotes with Pandas如何使用 Pandas 读取 CSV 文件忽略引号之间的逗号
【发布时间】:2021-08-25 01:30:39
【问题描述】:

我最近开始使用 Pandas。

这是我的 csv 文件。

column1,column2,column3
a, b, c
a, b, "c, d"

我希望"c, d" 像这里一样在第 3 列中:

Column1 Column2 Column3
a b c
a b c, d

但是使用data = pd.read_csv('testfile.csv', sep=',', quotechar='"', encoding='utf-8') 我得到了这张表:

Column1 Column2 Column3
a b c
a, b, "c, d" None None

我尝试更改read_csv 中某些参数的值。还有来自的正则表达式 here.

【问题讨论】:

    标签: python pandas csv


    【解决方案1】:

    你可以试试

    data = pd.read_csv('testfile.csv', sep=',', quotechar='"',
                       skipinitialspace=True, encoding='utf-8')
    

    告诉 pandas 忽略逗号后面的空格,否则它无法识别引号。

    编辑:显然这对问题的作者不起作用

    因此,这是一个产生所需结果的脚本。 我有 python 3.8.9,pandas 1.2.3。

    itworks.py

    import pandas as pd
    
    with open("testfile.csv", "w") as f:
        f.write("""column1,column2,column3
    a, b, c
    a, c, "c, d"
    """)
    
    data = pd.read_csv("testfile.csv", sep=",", quotechar='"', skipinitialspace=True, encoding="utf-8")
    print(data)
    
    $ python itworks.py
      column1 column2 column3
    0       a       b       c
    1       a       c    c, d
    $
    

    尝试重现这个最小的例子。

    【讨论】:

    • 我在问之前试过这个)它没有帮助。
    • @Ferapont 我在我的电脑上试过这个,你的输入和我在答案中显示的完全相同的命令,我得到了你想要的结果。
    • 这个脚本也可以在我的电脑上运行。但是当我在 excel 中编辑 csv 时,保存它,然后调用 pd.read_csv("testfile.csv", ...) 我得到同样的错误结果。我现在正试图理解为什么它会以这种方式工作。
    • Here 是解释。
    • 好吧,我想您也可以尝试不使用 Microsoft Excel。有一些替代方案对编程更友好,功能更强大(但对用户不太友好)。
    猜你喜欢
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 2014-07-27
    相关资源
    最近更新 更多