pandas中DataFrame對象to_csv()方法中的encoding參數


當使用pd.read_csv()方法讀取csv格式文件的時候,常常會因為csv文件中帶有中文字符而產生字符編碼錯誤,造成讀取文件錯誤,在這個時候,我們可以嘗試將pd.read_csv()函數的encoding參數設置為"gbk"或者"utf-8"。(這個方法在上一篇博客有介紹)

 

據我個人經驗總結(如果有錯誤,還希望大神斧正),在含有中文編碼的情況下,to_csv()方法的encoding參數默認為"gbk",而read_csv()方法的encoding參數默認為"utf-8",所以最好的防止由於編碼出錯導致讀取錯誤的方法就是在to_csv()和read_csv()方法同時顯式地設置相同的encoding參數。 

 

下面來談談出現編碼錯誤的原因。

 

原來當我們將pandas的DataFrame對象轉化為csv格式文件寫入硬盤的時候調用的to_csv()函數可以接受一個encoding參數(這個encoding參數決定了寫入csv文件所用的編碼方式)。同樣的,當我們調用pd.read_csv()函數來講csv文件讀取成DataFrame對象的時候,也要傳入一個與之對應的encoding參數,如下代碼例子(這里的encoding編碼格式設置為"utf-8"):

 1 import pandas as pd
 2 import numpy as np
 3 
 4 head = ["表頭1" , "表頭2" , "表頭3"]
 5 l = [[1 , 2 , 3],[4,5,6] , [8 , 7 , 9]]
 6 df = pd.DataFrame (l , columns = head)
 7 df.to_csv ("testfoo.csv" , encoding = "utf-8") 
 8 
 9 df2 = pd.read_csv ("testfoo.csv" , encoding = "utf-8")
10 print (df2)

結果如下:

   Unnamed: 0  表頭1  表頭2  表頭3
0           0    1    2    3
1           1    4    5    6
2           2    8    7    9



 
        
 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM