python我爱编程

Python pandas read_csv()读取csv文件路

2018-02-24  本文已影响6415人  tommyjex

问题: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参数

上一篇下一篇

猜你喜欢

热点阅读