删除带有 Unicode 名称的 pandas 列
编辑:这个问题和unicode没有关系
我有一些列的名字是unicode格式的,比如“#前田敦子:Japan”。我想把这些列从我的数据框中删除,但我遇到了一个UnicodeEncodeError
错误:
这段代码
for title_loc in f_df.columns:
if 'Japan' in title_loc:
f_df.drop(title_loc)
会出现这个错误
File "timeseries/sum_japan_timeseries.py", line 25, in read_timeseries_dir
f_df.drop(title_loc)
File "/home/isl/rfcompton/.local/lib/python2.7/site-packages/pandas/core/generic.py", line 1401, in drop
new_axis = axis.drop(labels)
File "/home/isl/rfcompton/.local/lib/python2.7/site-packages/pandas/core/index.py", line 1623, in drop
raise ValueError('labels %s not contained in axis' % labels[mask])
File "/usr/local/python/2.7.2/lib/python2.7/site-packages/numpy-1.6.1-py2.7-linux-x86_64.egg/numpy/core/numeric.py", line 1379, in array_str
return array2string(a, max_line_width, precision, suppress_small, ' ', "", str)
File "/usr/local/python/2.7.2/lib/python2.7/site-packages/numpy-1.6.1-py2.7-linux-x86_64.egg/numpy/core/arrayprint.py", line 309, in array2string
separator, prefix)
File "/usr/local/python/2.7.2/lib/python2.7/site-packages/numpy-1.6.1-py2.7-linux-x86_64.egg/numpy/core/arrayprint.py", line 230, in _array2string
_summaryEdgeItems, summary_insert)[:-1]
File "/usr/local/python/2.7.2/lib/python2.7/site-packages/numpy-1.6.1-py2.7-linux-x86_64.egg/numpy/core/arrayprint.py", line 355, in _formatArray
word = format_function(a[-1])
UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-3: ordinal not in range(128)
当列名没有unicode字符时,我可以正常使用.drop
,有没有什么好主意?
1 个回答
1
这里有几个问题。drop
默认是对行进行操作,而不是对列。而且,默认情况下它会返回一个新的对象,而不会修改原来的对象。问题可能出在它试图打印剩下的列,而这些列中有些也包含无法显示的Unicode字符。