首页 > 解决方案 > 将数据写入 CSV 文件,而不在数据集之间添加空行

问题描述

我的程序使用 pandas 的 to_csv 函数将数据写入 CSV 文件。在第一次运行时,CSV 文件最初是空的,我的代码在其中写入了数据(应该是)。在第二次运行时(请注意,我仍在使用相同的 CSV 文件),我的代码再次将数据写入其中(这很好)。问题是,第一次运行的数据和第二次运行的数据之间存在大量空行。

下面是我的代码:

#place into a file
csvFile = open(file, 'a', newline = '',encoding='utf-8')

if file_empty == True:
  df.to_csv(csvFile, sep=',', columns=COLS, index=False, mode='ab', encoding='utf-8') #header true
else:
  df.to_csv(csvFile, sep=',', columns=COLS, header=False, index=False, mode='ab', encoding='utf-8') #header false

如果 CSV 文件中已经存在数据,我使用了变量 file_empty 以便程序不写入列标题。

以下是 CSV 文件的示例输出:

第一次运行的最后数据在 CSV 文件的第 396行, 第二次运行的第一行数据在同一个 CSV 文件的第 1308 行

所以从第 397 行到第 1307 行有空行。我怎样才能删除它们,以便当程序再次运行时,它们之间没有空行?

标签: pythonpandascsv

解决方案


这是附加数据和删除空行的数据示例和代码。在此处输入图像描述

以下是可以帮助你的线路

import pandas
conso_frame = pandas.read_csv('consofile1.csv')
df_2 = pandas.read_csv('csvfile2.csv')

# Column Names should be same
conso_frame = conso_frame.append(df_2)
print(conso_frame)

conso_frame.dropna(subset = ["Intent"], inplace=True)
print(conso_frame)
conso_frame.to_csv('consofile1.csv', index=False)

推荐阅读