首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas -附加到现有csv文件问题

Pandas -附加到现有csv文件问题
EN

Stack Overflow用户
提问于 2021-08-01 03:21:20
回答 1查看 84关注 0票数 0

使用API进行数据采集,通过如下设置使用pandas.to_csv()函数:

代码语言:javascript
复制
path, mode='a',header=False, index=False'

然而,结果是相当奇怪的。API收集的第一行插入到其他列中,而不是插入到我创建的列中。

如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2021-08-01 04:14:47

在其中写入输出的文件在最后一行的末尾没有换行符(\n)。因此,在该行的末尾添加了以下数据。

下面是一个示例:

代码语言:javascript
复制
with open('/tmp/file.csv', 'w') as f:
    f.write('1,2')
pd.DataFrame([[3,4],[5,6]]).to_csv('/tmp/file.csv', mode='a', header=0, index=False)

输出:

代码语言:javascript
复制
1,23,4
5,6

您需要确保第一次写入时在最后一行的末尾添加一个换行符,或者您可以使用以下命令修复文件:

代码语言:javascript
复制
with open('/tmp/file.csv', 'a') as f:
    f.write('\n')

就在你导出to_csv之前。

输出:

代码语言:javascript
复制
1,2
3,4
5,6

这里有一个更聪明的方法来修复你的文件,它将检查文件的最后一个字符是否为\n,如果不是,将附加一个:

代码语言:javascript
复制
with open('/tmp/file.csv', 'r+') as f: # open file as read/append
    f.seek(0, 2)          # go to end of file
    f.seek(f.tell()-1, 0) # come back one chacacter
    if f.read() != '\n':  # if last character is not \n
        f.write('\n')     # then append \n
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68607287

复制
相关文章

相似问题

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