CSV和Pandas中的多个分隔符和混合报价

时间:2019-04-05 11:34:17

标签: python pandas csv

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

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

短标题行:

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

(因此标题行中的空格用双引号引起来)

和数据:

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

在列中也有逗号和空格,并且用引号将其引起来。

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

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

与数据相同。

这破坏了我们的某些环境,我无法在CSV中使用它。

如果我不使用引号,则它将所有引号从标题行和其他行中取出,然后空格成为问题。

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

2 个答案:

答案 0 :(得分:0)

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

您很可能需要QUOTE_MINIMALQUOTE_NONNUMERIC

您可能需要QUOTE_MINIMAL(因为未引用blah

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

答案 1 :(得分:0)

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

这对我而言有效:

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