python在现有CSV中添加额外的列,并用空值填充该列



我有这个CSV:

<表类> B tbody><<tr>1324

这段代码给出了期望的输出。

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_nana_values选项。

编辑:要回应关于引用的评论,我认为这有点难,因为在我看来,选项要么是最低限度地引用,要么是引用所有内容,这与保留原始引号的同时将新列作为空字符串的要求相反。我会在DataFrame.to_csv中使用quoting选项。

最新更新