Python pandas read_csv()读取csv文件路径名和文件名不能包含中文

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

《Python pandas read_csv()读取csv文件路径名和文件名不能包含中文》 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列,与原数据表不相符。

《Python pandas read_csv()读取csv文件路径名和文件名不能包含中文》 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)

运行结果如下:

《Python pandas read_csv()读取csv文件路径名和文件名不能包含中文》 正确的列标题,包含3列

《Python pandas read_csv()读取csv文件路径名和文件名不能包含中文》 运行print(df.head(3))查看前3行,正常

问题解决办法:

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

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

    原文作者:tommyjex
    原文地址: https://www.jianshu.com/p/f9f70ea6ecc3
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞