python - 合并键(unicode 列名称)错误

标签 python pandas unicode

    u'가'  u'나'    
0     
1   
...


       A      B
0
1
...

有两个像上面一样的 pandas 数据框,分别称为“左”、“右”。我尝试像下面的代码那样合并。

result = pandas.merge(left, right, how='left', left_on=[u'가'], right_on=['A'])

但不幸的是,错误发生了。 pandas merge left(right)_on=key 功能似乎无法识别 unicode 列名。

  File "?.py", line ?, in merger
    pandas.merge(left, right, how='left', left_on=[u'가'], right_on=['A'])
  File "C:\Anaconda\lib\site-packages\pandas\tools\merge.py", line 37, in merge
copy=copy)
  File "C:\Anaconda\lib\site-packages\pandas\tools\merge.py", line 183, in __init__
self.join_names) = self._get_merge_keys()
  File "C:\Anaconda\lib\site-packages\pandas\tools\merge.py", line 352, in _get_merge_keys
left_keys.append(left[lk].values)
  File "C:\Anaconda\lib\site-packages\pandas\core\frame.py", line 1797, in __getitem__
return self._getitem_column(key)
  File "C:\Anaconda\lib\site-packages\pandas\core\frame.py", line 1804, in _getitem_column
return self._get_item_cache(key)
  File "C:\Anaconda\lib\site-packages\pandas\core\generic.py", line 1084, in _get_item_cache
values = self._data.get(item)
  File "C:\Anaconda\lib\site-packages\pandas\core\internals.py", line 2851, in get
loc = self.items.get_loc(item)
  File "C:\Anaconda\lib\site-packages\pandas\core\index.py", line 1572, in get_loc
return self._engine.get_loc(_values_from_object(key))
  File "pandas\index.pyx", line 134, in pandas.index.IndexEngine.get_loc (pandas\index.c:3824)
  File "pandas\index.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandas\index.c:3704)
  File "pandas\hashtable.pyx", line 686, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12280)
  File "pandas\hashtable.pyx", line 694, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12231)
KeyError: u'\uac00'

以前有人遇到过这种错误吗?如果是这样,请告诉我并提供您的提示。

最佳答案

我猜您是从 .csv.excel 等文件构造 DataFrame 的。然后,您需要设置编码选项:

left=pd.read_csv('kor.csv', encoding='utf-8')
#or
left=pd.read_excel('kor.xlsx', encoding='utf-8')

它将解决问题。

关于python - 合并键(unicode 列名称)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31538233/

相关文章:

用于将串在一起的单词拆分为单个单词的 Python 函数

python - 您如何实现基于网络的直接存款/电子支票支付系统?

Python - 将日期时间列转换为秒

javascript - node.js 编码错误

java - 检查字符串是否可在 Gsm0338 中编码

python - 对带区使用 fill_ Between

python reduce accum 作为参数

python - 由于 pandas 崩溃,flask 服务器退出且没有任何消息

python - 多索引数据框连接(如果不是 NaN 则保留更新的数据并附加到新索引)

python - Python 2 如何在内部表示 Unicode?