問題:read_csv()讀取csv文件后,dataframe數(shù)據(jù)表只有一列。

代碼:
import pandas as pd
df = pd.read_csv('D:\數(shù)據(jù)源字段列表.csv', encoding='utf-8') #包含中文路徑名和文件名
運行后報錯:OSError: Initializing from file failed
修改代碼:在語句中加上engine
df = pd.read_csv('D:\數(shù)據(jù)源字段列表.csv', engine='python', encoding='utf-8')
重新運行不會報錯,但是出現(xiàn)一個bug,導入的數(shù)據(jù)永遠只有一列!
print(df.columns)查看列名,只有1列,與原數(shù)據(jù)表不相符。

在網(wǎng)上搜了很久都沒找到解決方法。偶然想到可能跟文件名中包含中文字符有關(guān),于是嘗試將文件名和路徑中的所有中文字符修改成英文字符
運行如下代碼:
df = pd.read_csv('D:\source_lists.csv',encoding='utf-8',engine='python')
print(df.columns)
結(jié)果與上面一摸一樣,還是只顯示一個列!不氣餒!
然后,我把engine='python'這個參數(shù)刪掉,結(jié)果讓人眼前一亮!問題居然解決了!
修改后代碼如下:
df = pd.read_csv('D:\source_lists.csv',encoding='utf-8')
print(df.columns)
運行結(jié)果如下:


問題解決辦法:
1,csv文件的保存路徑和文件名均不能有中文字符
2,read_csv()方法中不要包含engine參數(shù)