pandas(python2) 讀取中文數據,處理中文列名


 要點:

  • python修改默認編碼為utf-8;
  • 在讀取csv或者 xls文件時 寫入參數encoding="gbk";如果 gbk也不能 decode,使用收錄字符更廣的‘’gb18030‘’解碼。
  • 使用中文列名時 decode('utf-8'), 或者 u'中文列名';一勞永逸>  from __future__ import unicode_literals
  • 使用codecs模塊讀取中文文本

 

# -*- coding: utf-8 -*-
import sys
reload(sys) 
sys.setdefaultencoding('utf8') 
import pandas as pd
path_1= 'brokerUserfeeList.xls'
x = pd.read_excel(path_, encoding="gbk")
print x.columns
print x["成交金額".decode('utf-8')]

#print x[u"成交金額"] #建議使用加u,或者import future,兼容python3

####output:

Index([u'序號', u'成交金額'], dtype='object')
0 11,053.00
1 43,935.40
2 467,327.83
3 32,811.07
4 17,651.10
5 4,629.80

=======================================================

Windows對於讀取中文文本,可以使用讀取后decode('gbk'),即解碼成unicode

open(u'C:\\Users\\Administrator\\Desktop\\222.txt' ).read().decode('gbk')

寫的時候就需要,用encode('gbk')把unicode編碼成字節流再寫入

ttt = u'看了看打扮卡了號地塊編碼,vas'

with open(ur'c:\Users\Administrator\Desktop\222222.txt', 'w') as f:
  f.write(ttt.encode('gbk'))

推薦使用codecs 模塊,codecs.open()  帶encoding參數,直接搞定

with codecs.open(ur'c:\Users\Administrator\Desktop\2222.txt', 'w', encoding='gbk') as f:
    f.write(ttt)

 


免責聲明!

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



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