Pandas:写入带有 Windows 行结尾的 CSV 文件

Dav*_*vid 7 python csv pandas

例子:

import pandas as pd
df = pd.DataFrame({'A':[1,2], 'B':[3,4]})
df.to_csv('test.csv', line_terminator='\r\n')
Run Code Online (Sandbox Code Playgroud)

给文件

,A,B\r
\r\n
0,1,3\r
\r\n
1,2,4\r
\r\n
Run Code Online (Sandbox Code Playgroud)

然而,我想要

,A,B\r\n
0,1,3\r\n
1,2,4\r\n
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点(即,\r\n而不是\r\r\n)。我的操作系统是 Windows 10。

Ore*_*ren 1

以下内容来自提交给 Kaggle 的内容。希望您会发现它很有用。我必须自己编写输出循环,因为 pandas 坚持添加 CR 和 LF,这给 Kaagle 带来了问题。

import io

with io.open('../output/submission_{}.csv'.format('22-Sep-2018-Try-Something_with_re'), 'w', newline='\n') as of:
    of.write('fullVisitorId,PredictedLogRevenue\n')
    for ind in out_log.index:
       of.write('{},{}\n'.format(ind, out_log['PredictedLogRevenue'][ind])) 
Run Code Online (Sandbox Code Playgroud)

主要需要注意的是io.open的使用,在open调用中设置newline='\n',并在每次write调用末尾添加'\n'。