我有一个特定的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中使用它。
如果我不使用引号,则它将所有引号从标题行和其他行中取出,然后空格成为问题。
欢迎在这里提出任何建议。
答案 0 :(得分:0)
使用pd.to_csv(...)
](quoting-constant中的模块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)
答案 1 :(得分:0)
似乎比我想象的要容易,我专注于定界符,而不是转义字符。
这对我而言有效:
new_f.to_csv("output.csv", sep=',', escapechar=' ', quotechar='"', quoting=csv.QUOTE_MINIMAL, index=False)