美文网首页python我爱编程
Python pandas read_csv()读取csv文件路

Python pandas read_csv()读取csv文件路

作者: tommyjex | 来源:发表于2018-02-24 17:38 被阅读6415次

    问题:read_csv()读取csv文件后,dataframe数据表只有一列。

    CSV原文件样例,包含3列

    代码:

    import pandas as pd

    df = pd.read_csv('D:\数据源字段列表.csv', encoding='utf-8') #包含中文路径名和文件名


    运行后报错:OSError: Initializing from file failed

    修改代码:在语句中加上engine

    df = pd.read_csv('D:\数据源字段列表.csv', engine='python', encoding='utf-8')

    重新运行不会报错,但是出现一个bug,导入的数据永远只有一列!

    print(df.columns)查看列名,只有1列,与原数据表不相符。

    print(df.columns)输出结果

    在网上搜了很久都没找到解决方法。偶然想到可能跟文件名中包含中文字符有关,于是尝试将文件名和路径中的所有中文字符修改成英文字符

    运行如下代码:

    df = pd.read_csv('D:\source_lists.csv',encoding='utf-8',engine='python')

    print(df.columns)

    结果与上面一摸一样,还是只显示一个列!不气馁!

    然后,我把engine='python'这个参数删掉,结果让人眼前一亮!问题居然解决了!

    修改后代码如下:

    df = pd.read_csv('D:\source_lists.csv',encoding='utf-8')

    print(df.columns)

    运行结果如下:

    正确的列标题,包含3列 运行print(df.head(3))查看前3行,正常

    问题解决办法:

    1,csv文件的保存路径和文件名均不能有中文字符

    2,read_csv()方法中不要包含engine参数

    相关文章

      网友评论

        本文标题:Python pandas read_csv()读取csv文件路

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