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

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

CSV原文件樣例,包含3列

代碼:

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ù)表不相符。

print(df.columns)輸出結(jié)果

在網(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é)果如下:


正確的列標題,包含3列


運行print(df.head(3))查看前3行,正常

問題解決辦法:

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

2,read_csv()方法中不要包含engine參數(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容