熊猫:用Windows行结尾写CSV文件

时间:2017-01-02 21:06:20

标签: 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')

给出文件

,A,B\r
\r\n
0,1,3\r
\r\n
1,2,4\r
\r\n

然而,我想有

,A,B\r\n
0,1,3\r\n
1,2,4\r\n

我如何实现这一目标(即\r\n而不是\r\r\n)。我的操作系统是Windows 10。

1 个答案:

答案 0 :(得分:0)

以下是提交给Kaggle的文章。希望您会发现它有用。我不得不自己编写输出循环,因为熊猫坚持同时添加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])) 

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