简体   繁体   English

我如何在 Pandas python 中的每个新行之后插入空行

[英]How do i insert blank rows after every new rows in pandas python

I've a data我有数据

 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

Output file should be输出文件应该是

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

my code我的代码

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()

Creating blank rows, which function I've to use.创建空白行,我必须使用哪个功能。 Please throw some lights on this.请在这点上点亮一些灯。

You can use df.to_csv() to make your life a litter easier (and your code a little faster).您可以使用df.to_csv()使您的生活更轻松(并且您的代码更快)。

df.to_csv() then has an argument line_terminator . df.to_csv()然后有一个参数line_terminator This controls what separates one row from another in the resulting .csv file.这控制在生成的.csv文件中将一行与另一行分开的内容。

How exactly a newline is encoded depends on your operating system.换行符的确切编码方式取决于您的操作系统。 We can use os.linesep to find out the newline character for your OS (I can see here that you're running windows, but using os.linesep would be considered good practice anyway, and colleagues running a different OS will thank you).我们可以使用os.linesep找出您的操作系统的换行符(我可以在这里看到您正在运行 Windows,但无论如何使用os.linesep将被认为是一种很好的做法,运行不同操作系统的同事会感谢您)。

Here's an MWE:这是一个 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)

This gave me the file contents as这给了我文件内容

❯ 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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM