首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何停止在csv文件末尾写入空行- pandas

如何停止在csv文件末尾写入空行- pandas
EN

Stack Overflow用户
提问于 2016-08-31 06:00:48
回答 6查看 10.7K关注 0票数 13

当将数据保存到csv,data.to_csv('csv_data', sep=',', encoding='utf-8', header= False, index = False)时,它会在csv文件的末尾创建一个空行。

你如何避免这种情况呢?

它与line_terminator有关,对于新行,它的默认值是n

有没有办法指定line_terminator以避免在结尾创建空行,或者我是否需要读取csv文件,删除空行并保存它?

不熟悉熊猫。您的帮助我们将不胜感激,谢谢!

EN

回答 6

Stack Overflow用户

发布于 2016-08-31 15:47:54

一种方法是使用默认的line_terminator(\n)保存除最后一项之外的数据,并在最后一行后面附加line_terminator=""

代码语言:javascript
复制
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="")
票数 6
EN

Stack Overflow用户

发布于 2017-02-18 02:09:02

由于某些原因,当我尝试使用行终止符时,它无法工作。(它给出了一个错误,说line_terminator是一个无法识别的关键字参数。)

然而,这将会起到作用:

代码语言:javascript
复制
    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)
票数 3
EN

Stack Overflow用户

发布于 2019-06-17 22:21:43

代码语言:javascript
复制
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‘

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39237755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档