1. 程式人生 > >pandas21讀csv檔案read_csv錯誤解決辦法7種(詳細 tcy)

pandas21讀csv檔案read_csv錯誤解決辦法7種(詳細 tcy)

pandas讀csv檔案錯誤解決辦法   2018/12/24

以下方法彙總網上資料,有些方法是使用python2.x;建議你升級到python3.x,能夠避免一些問題。

重點關注引數encoding,engine='python'

1.正確使用: 

1.1.檔名含路徑中特殊符號:
pd.read_csv(r'd:\bujiao.csv')#前加r
os.getcwd() #獲得當前的工作路徑
pd.read_csv("bujiao.csv") #檔案存在當前的工作路徑的目錄內

1.2.簡體中文檔名:
pd.read_csv(r'd:\明細.csv',encoding='gb2312')#gbk,gb18030

1.3.繁體字檔名:
pd.read_csv(r'd:\河滘.csv',encoding='gbk') #gbk支援繁體中文

1.4.讀取中文名檔案或者在前面加u

pd.read_csv(u'河滘.csv')
data=pd.read_csv('F:\\資料來源\\清單.csv',engine='python')
data=pd.read_csv(open('F:\\資料來源\\清單.csv'))#python3.7

1.5.讀取以0開頭資料出現數據缺失
pd.read_csv(r".c:\\test.csv" ,, converters = {u'code':str})
# 不加converters 引數'000539'讀出變成'539'
df = pd.read_excel(os.getcwd() + os.sep + 'stock.xlsx',converters = {u'code':str})

1.6.檔案中含中文字元
# 檢視本機器預設的encoding
sys.getdefaultencoding()#‘utf-8’;新增支援中文的編碼
pd.read_csv('d:\\si\\a.csv',encoding='gb2312')

1.7.讀取指定資料型別
# df資料a,b,c分別為str,float,float
df=pd.read_csv(output_file,encoding='gb2312',names=['a','b','c'],dtype={'b':np.folat64})  
2.python字串前面加u,r,b的含義
u/U:表示unicode字串
    # 適用任何字串,對字串進行unicode編碼。
    # 中文一般新增, 否則一旦編碼轉換就會出現亂碼。
r/R:非轉義的原始字串
    # 以r開頭的字元,常用於正則表示式,對應著re模組。
    # python3.x默  

3.注意: 

1.讀取日期注意把日期列寬度,不夠的增加
2.python3支援中文檔名讀寫,所以可以python函式直接讀寫