【问题标题】:Multiple separators and mixed quotations in CSV and PandasCSV 和 Pandas 中的多个分隔符和混合引号
【发布时间】:2019-04-05 11:34:17
【问题描述】:

我有一个特定的 CSV 文件,我认为这是 PHP 工作的标准,因为它来自 PHP 代码。

我正在尝试使用 pandas 删除某些列(200 多列),但需要保留标题行和所有其他行中的引号。

短标题行:

name, "Full Name", "Suggested Name", id

(所以空格在标题行中用双引号转义)

还有数据:

blah, "Very, Blah Line", "Not Suggested", 2

所以在列中有逗号和空格,并且用引号转义。

如果我使用 pandas read_scv,它会正确读取数据,然后用引号保存所有内容,这意味着将标题行更改为:

"name", "Full Name", "Suggested Name", "id"

数据也是如此。

这会破坏我们的一些环境,而我无法在 CSV 中使用它。

如果我不使用引号,那么它将从标题行和其他行中取出所有引号,这样空格就会成为问题。

欢迎在这里提出任何建议。

【问题讨论】:

    标签: python pandas csv


    【解决方案1】:

    在您的pd.to_csv(...)](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html)-call) 中使用来自模块 csv 的正确 quoting-constant。

    您很可能需要QUOTE_MINIMAL 或QUOTE_NONNUMERIC:

    您可能需要 QUOTE_MINIMAL(因为 blah 没有被引用):

    your_df.to_csv('some.txt', quoting=csv.QUOTE_MINIMAL)
    

    【讨论】:

      【解决方案2】:

      似乎比我想象的要容易,我专注于分隔符,而不是转义字符。

      这在我的情况下有效:

      new_f.to_csv("output.csv", sep=',', escapechar=' ', quotechar='"', quoting=csv.QUOTE_MINIMAL, index=False)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-14
        • 1970-01-01
        • 2018-10-08
        • 1970-01-01
        • 2020-05-25
        • 2016-10-27
        • 2017-09-02
        相关资源
        最近更新 更多