问题:read_csv()读取csv文件后,dataframe数据表只有一列。
代码:
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列,与原数据表不相符。
在网上搜了很久都没找到解决方法。偶然想到可能跟文件名中包含中文字符有关,于是尝试将文件名和路径中的所有中文字符修改成英文字符
运行如下代码:
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)
运行结果如下:
问题解决办法:
1,csv文件的保存路径和文件名均不能有中文字符
2,read_csv()方法中不要包含engine参数