当将数据保存到csv,data.to_csv('csv_data', sep=',', encoding='utf-8', header= False, index = False)时,它会在csv文件的末尾创建一个空行。
你如何避免这种情况呢?
它与line_terminator有关,对于新行,它的默认值是n。
有没有办法指定line_terminator以避免在结尾创建空行,或者我是否需要读取csv文件,删除空行并保存它?
不熟悉熊猫。您的帮助我们将不胜感激,谢谢!
发布于 2016-08-31 15:47:54
一种方法是使用默认的line_terminator(\n)保存除最后一项之外的数据,并在最后一行后面附加line_terminator=""。
data1 = data.iloc[0:len(data)-1]
data2 = data.iloc[[len(data)-1]]
data1.to_csv('csv_data', sep=',', encoding='utf-8', header= False, index = False)
data2.to_csv('csv_data', sep=',', encoding='utf-8', header= False, index = False,mode='a',line_terminator="")发布于 2017-02-18 02:09:02
由于某些原因,当我尝试使用行终止符时,它无法工作。(它给出了一个错误,说line_terminator是一个无法识别的关键字参数。)
然而,这将会起到作用:
df.to_csv(path)
with open(path) as f:
lines = f.readlines()
last = len(lines) - 1
lines[last] = lines[last].replace('\r','').replace('\n','')
with open(path, 'w') as wr:
wr.writelines(lines)发布于 2019-06-17 22:21:43
file_out = r'c:\your_output_file_path\file_name.csv'
df.to_csv(file_out)
file_data = open(file_out, 'rb').read()
open(file_out, 'wb').write(file_data[:-2])df.to_csv()函数有一个名为line_terminator的参数,默认值为'\n‘。这个新行字符就是手头的问题。
上面的代码:
1)正常将数据帧写入文件
2)打开文件并将字节数据读入file_data变量
3)将file_data变量写回同一个文件,但使用拼接: file_data:-2修剪掉'\n‘
https://stackoverflow.com/questions/39237755
复制相似问题