美文网首页Python数据分析
Python pandas在读取csv文件时(linux与win

Python pandas在读取csv文件时(linux与win

作者: 数据人阿多 | 来源:发表于2021-05-20 13:37 被阅读0次

    背景

    最近在处理用户评论数据时,从Linux服务器上面用pandas导出的csv文件,下载到自己的Windows电脑,再用本地pandas读取时发现数据行数不一致的情况,比如在Linux服务器上面数据一共有10行,但是用自己本地电脑pandas读取时确大于10行。

    问题出现的具体场景
    公司Linux服务器上面安装的有Jupyter notebook,在自己本地电脑输入网址是可以直接访问并使用,而且很方便上传、下载文件,对于Linux服务器小白来说很方便,省去了ssh连接Linux服务器的过程。
    遇到的这个问题是通过本地电脑连接到Linux服务器Jupyter notebook处理了一些数据(用户评论文本数据),然后导出到csv文件,下载到自己的Windows电脑,然后使用本地的python环境读取数据,发现数据行数不一致的问题。

    问题查找

    首先找出了从哪一行开始出现串行,查看具体的文本数据,发现在文本数据里面出现特殊转义字符\r,于是豁然开朗,Linux的换行符为\n,而Windows的换行符为\r\n,所以在文本里面出现\r字符时,与Windows换行符有冲突,pandas读取数据时出现数据行数不一致问题。

    解决方法

    在pandas读取csv数据时,可利用参数lineterminator,明确指定该参数后,可以解决该问题

    pd.read_csv('test.csv',lineterminator='\n')
    

    具体可以看看pandas.to_csv这个参数的解释

    pandas.to_csv

    案例复现

    Linux服务器上面的数据

    linux服务器上面的数据

    下载后用Windows来读取该数据

    windows读取数据

    可以看出,如果不加 lineterminator 参数的话,数据行数会不一致,加了参数后,数据行数保持一致。由于Linux与Windows两个系统的换行符不一样,因此大家在处理数据时可以利用 lineterminator 参数来避免这样的问题,分享出来供大家参考

    历史相关文章


    以上是自己实践中遇到的一些问题,分享出来供大家参考学习,欢迎关注微信公众号:DataShare ,不定期分享干货

    相关文章

      网友评论

        本文标题:Python pandas在读取csv文件时(linux与win

        本文链接:https://www.haomeiwen.com/subject/licqjltx.html