我有一个特定的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格式化。
如果我不使用引号,那么它将从标题行和其他行中取出所有引用,然后空格成为问题。
欢迎任何建议。
使用quoting-constant中的模块csv中正确的pd.to_csv(...)
(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html)-call。
你最有可能需要QUOTE_MINIMAL
或QUOTE_NONNUMERIC
:
你可能需要QUOTE_MINIMAL(因为没有引用blah
):
your_df.to_csv('some.txt', quoting=csv.QUOTE_MINIMAL)
它似乎比我想象的要容易,我专注于分隔符,而不是逃避字符。
这适用于我的情况:
new_f.to_csv("output.csv", sep=',', escapechar=' ', quotechar='"', quoting=csv.QUOTE_MINIMAL, index=False)