CSV和Pandas中的多个分隔符和混合引号

问题描述 投票:2回答:2

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

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

标题线短路:

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

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

和数据:

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

因此,列中包含逗号和空格,并使用引号进行转义。

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

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

与数据相同。

这打破了我们的一些环境,我无法用CSV格式化。

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

欢迎任何建议。

python pandas csv
2个回答
0
投票

使用quoting-constant中的模块csv中正确的pd.to_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)

0
投票

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

这适用于我的情况:

new_f.to_csv("output.csv", sep=',', escapechar=' ', quotechar='"', quoting=csv.QUOTE_MINIMAL, index=False)
© www.soinside.com 2019 - 2024. All rights reserved.