rood-Python 3讀取.CSV檔案遇到的編碼問題
今天算是我第一次進行Python 靜心的學習過程了。
拿到隧道的資料 拷貝一下 我擦30多G 很是happy 看來可以在 故障檢測上面的 有點進展了。
進入正題:
首先想要讀取.CSV 檔案,看到pandas模組有直接讀取的操作read_csv()函式。雖然印象中Python中好像內建有open() ,read()等等函式,但是呃呃 我是渣渣 實在記不得怎麼用。。。。。。
於是很開心的給了一句
pd.read_csv(‘D:/AAProject/data/west/1/2012101100_2012101123.csv’)
悲劇了。。。。報錯
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xb1 in position 0: invalid start byte
趕緊找度娘。。
度娘說。。啊 這種情況吧 你要。。。
【
import sys
import imp
imp.reload(sys)
sys.setdefaultencoding(‘utf-8’)
】—說是 改變Python直譯器的編碼方式,預設是Unicode 要該為 utf-8
然並卵啊,AttributeError: module ‘sys’ has no attribute ‘setdefaultencoding’
就是 告訴我sys裡面 沒有這個方法唄。要是想當年 出現這種情況,,,我直接做系統了。。。。
淡定。重新百度。。。。
因為我的原始檔資料裡確實有漢字 所以很可能‘GBK’編碼唄。那就看看pandas 的read_csv()函式裡面有沒有規定編碼方式的引數控制唄,重要發現還是有引數進行控制的,小菜在這裡給出語句
pd.read_csv(‘D:/AAProject/data/west/1/2012101100_2012101123.csv’,encoding=”gbk”,skiprows=[1])
至此 問題完美解決。
—–涉及ETL、Python、java、D3、機器學習為目標的研一小菜鳥