首页 > 解决方案 > 我如何在熊猫python中的每个新行之后插入空白行

问题描述

我有数据

 0002 100789  Clearing charges       1000.00-  Pending
 0002 239890  Cheque bounce            20.00   client accepted
 0001 789652  Export docs             200.00   Bank of Italy charges

输出文件应该是

0002 100789  Clearing charges       1000.00-  Pending

0002 239890  Cheque bounce            20.00   client accepted

0001 789652  Export docs             200.00    Bank of Italy charges

我的代码

import pandas as pd
df=pd.read_fwf("C:\\csv_in\\back_trans.csv",widths=[4,9,16,15,23],header=None)
result=df.to_string(index=False,header=None)
new_file=open("C:\\csv_out\\back_trans.csv",mode="a+",encoding="utf-8")
new_file.writelines(result)
for line in new_file:
    print(line)
new_file.close()

创建空白行,我必须使用哪个功能。请在这点上点灯。

标签: pythonpandas

解决方案


你可以用它df.to_csv()来让你的生活更轻松(并且你的代码更快一点)。

df.to_csv()然后有一个论点line_terminator.csv这控制在结果文件中将一行与另一行分开的内容。

换行符的编码方式取决于您的操作系统。我们可以os.linesep用来找出您的操作系统的换行符(我可以在这里看到您正在运行 Windows,但os.linesep无论如何使用将被认为是一种好的做法,运行不同操作系统的同事会感谢您)。

这是一个MWE:

import os
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0, 10, size=(10, 3))) 

df.to_csv("C:\\csv_out\\back_trans.csv", line_terminator=os.linesep*2)

这给了我文件内容

❯ cat C:\\csv_out\\back_trans.csv 
,0,1,2

0,4,3,4

1,1,1,8

2,4,7,1

3,3,3,7

4,8,5,0

5,7,5,3

6,1,1,0

7,0,3,4

8,1,7,1

9,1,2,9

推荐阅读