使用熊猫编写文件会创建空白行

时间:2019-05-31 15:56:29

标签: python pandas

我正在使用pandas库将mysql数据库的内容写入csv文件。

但是当我编写CSV时,其他所有行都是空白:

blank lines in csv

此外,它在我不需要的左边打印行号。第一列应该是“帐号”。

这是我的代码:

destination = 'output_file.txt'
read_sql = """ SELECT LinkedAccountId,ProductName,ItemDescription,ResourceId,UnBlendedCost,UnBlendedRate,Name,Owner,Engagement FROM billing_info ;"""
fieldnames = ['Account Number', 'Product Name', 'Item Description', 'Resource ID', 'UnBlended Cost', 'UnBlended Rate', 'Name', 'Owner', 'Engagement']
# Open the file
f = open(destination, 'w')
cursor.execute(read_sql)
while True:
    # Read the data
    df = pd.DataFrame(cursor.fetchmany(1000))
    # We are done if there are no data
    if len(df) == 0:
        break
    # Let's write to the file
    else:
        df.to_csv(f, header=fieldnames)

为什么在带有数据的行之间打印空白行?如何获取没有文件行且左边没有行号列的文件?

1 个答案:

答案 0 :(得分:2)

看看to_csv的选项:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html

为方便起见,我在此处发布了一些感兴趣的项目:

  

line_terminator:字符串,可选

     

在输出文件中使用的换行符或字符序列。默认为os.linesep,这取决于此操作系统   方法被称为(对于Linux为'n',对于Windows为'rn')。

  

index:布尔值,默认为True

     

写行名(索引)。

可能是您要找的东西。至于空行,请尝试明确指定一个换行符:

df.to_csv(f, header=fieldnames, index=False, line_terminator='\n')