我有这个CSV:
<表类>
B
tbody><<tr>1 3 24 表类>
这段代码给出了期望的输出。
keep_default_na保留N/A。引用= csv。QUOTE_NONE保留引号。
import pandas as pd
import csv as csv
fileName = "a.txt"
df = pd.read_csv(fileName,keep_default_na=False, quoting=csv.QUOTE_NONE)
df["New1"] = ""
df["New2"] = ""
outcsv = fileName
df.to_csv(outcsv, index=False,quoting=csv.QUOTE_NONE)
您需要传递keep_default_na=False
,否则现有CSV中的"N/A"
s将被识别为NaN
,然后在您写入新文件时将其写入空字符串。试试这个:
df = pd.read_csv(fileName, keep_default_na=False)
# do your thing
df.to_csv(fileName)
要了解更多细节,请参阅文档,特别是阅读keep_default_na
和na_values
选项。
编辑:要回应关于引用的评论,我认为这有点难,因为在我看来,选项要么是最低限度地引用,要么是引用所有内容,这与保留原始引号的同时将新列作为空字符串的要求相反。我会在DataFrame.to_csv
中使用quoting
选项。