Pandas DataFrame to_csv 每行后面都写了空白行

5
当我将一个数据框写入CSV文件时,如果我使用“with open”语句,那么在每行后面会有一个空白行:
df = pd.DataFrame(data=np.random.randint(0, 100, (4, 5)), columns=list('ABCDE'))
with open('test.csv', 'a') as f:
    df.to_csv(f, header=False)

如果我仅仅执行以下操作:

df.to_csv('test.csv', header=False)

没有空白行!我做错了什么?


2
你的第二个选项是使用pandas中.to_csv()的正确方式。 - Sebastien D
如果我使用with open,我可以检查文件是否存在,如果不存在,则写入标题。如果存在,则不写入。而且所有这些都在同一行上,没有太多麻烦! - Laleh
\r\n default vs \n - rbcvl
更改 header=None? - BENY
参考此帖子:如何将Pandas数据添加到现有的CSV文件中? - https://dev59.com/CWMm5IYBdhLWcg3wivj7 - Sebastien D
我很困惑。这两个选项中的任何一个都如何在每一行后面产生空白行? - Quang Hoang
1个回答

10

默认情况下,:

with open('test.csv', 'a') as f

\r\n

to_csv() 中的换行符是 \n

你可以尝试使用:

with open('test.csv', 'a', newline = '\n') as f

如果我打开文件进行写入,它不会追加内容,而是直接覆盖重写。 - Laleh
a参数用于追加,而不是使用w写入。抱歉。 - rbcvl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接