|
发表于 2018-9-18 16:37:46
|
显示全部楼层
如果您遇到编码为'utf-8'的问题,并且想要逐个单元格地进行,您可以尝试以下其他方法。
Python 2
(其中“df”是您的DataFrame对象。)
- for column in df.columns:
- for idx in df[column].index:
- x = df.get_value(idx,column)
- try:
- x = unicode(x.encode('utf-8','ignore'),errors ='ignore') if type(x) == unicode else unicode(str(x),errors='ignore')
- df.set_value(idx,column,x)
- except Exception:
- print 'encoding error: {0} {1}'.format(idx,column)
- df.set_value(idx,column,'')
- continue
复制代码
然后尝试:
________________________________________
可以通过以下方式检查列的编码:
- for column in df.columns:
- print '{0} {1}'.format(str(type(df[column][0])),str(column))
复制代码
警告:errors ='ignore'只会省略字符,例如
- IN: unicode('Regenexx\xae',errors='ignore')
- OUT: u'Regenexx'
- Python 3
- for column in df.columns:
- for idx in df[column].index:
- x = df.get_value(idx,column)
- try:
- x = x if type(x) == str else str(x).encode('utf-8','ignore').decode('utf-8','ignore')
- df.set_value(idx,column,x)
- except Exception:
- print('encoding error: {0} {1}'.format(idx,column))
- df.set_value(idx,column,'')
- continue
复制代码
|
|