首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python :两个数据的外部连接或合并会产生错误: TypeError: unhashable type:'numpy.ndarray‘

Python :两个数据的外部连接或合并会产生错误: TypeError: unhashable type:'numpy.ndarray‘
EN

Stack Overflow用户
提问于 2021-12-05 04:08:26
回答 1查看 287关注 0票数 1

我加入了digiplay_video_services_t和dsr_conflict_df这两种数据格式。

代码语言:javascript
运行
复制
common_cols = ['region', 'management_area', 'rf_line_up_name', 'site', 'frequency_name', 'sdv_site', 'bandwidth_spectrum_width', 'qam_rf_label']

dsr_digiplay_conflicts = pd.merge(digiplay_video_services_t, dsr_conflict_df,
left_on = common_cols + ['reference_lcm_name', 'dwnstrm_plant', 'frequency', 'eia', 'source_id'], 
right_on = common_cols + ['reference_lcm_name', 'dwnstrm_plant', 'frequency', 'eia', 'source_id'], how = 'outer', indicator = True)

我得到了下面的错误,这里给出了堆栈跟踪。

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "task_3_build_wt_video_services.py", line 1141, in <module>
    main()
  File "task_3_build_wt_video_services.py", line 624, in main
    how = 'outer', indicator = True)
  File "/var/lib/airflow/venv/lib/python3.6/site-packages/pandas/core/reshape/merge.py", line 89, in merge
    return op.get_result()
  File "/var/lib/airflow/venv/lib/python3.6/site-packages/pandas/core/reshape/merge.py", line 668, in get_result
    join_index, left_indexer, right_indexer = self._get_join_info()
  File "/var/lib/airflow/venv/lib/python3.6/site-packages/pandas/core/reshape/merge.py", line 884, in _get_join_info
    (left_indexer, right_indexer) = self._get_join_indexers()
  File "/var/lib/airflow/venv/lib/python3.6/site-packages/pandas/core/reshape/merge.py", line 863, in _get_join_indexers
    self.left_join_keys, self.right_join_keys, sort=self.sort, how=self.how
  File "/var/lib/airflow/venv/lib/python3.6/site-packages/pandas/core/reshape/merge.py", line 1328, in _get_join_indexers
    zipped = zip(*mapped)
  File "/var/lib/airflow/venv/lib/python3.6/site-packages/pandas/core/reshape/merge.py", line 1326, in <genexpr>
    for n in range(len(left_keys))
  File "/var/lib/airflow/venv/lib/python3.6/site-packages/pandas/core/reshape/merge.py", line 1974, in _factorize_keys
    rlab = rizer.factorize(rk)
  File "pandas/_libs/hashtable.pyx", line 96, in pandas._libs.hashtable.Factorizer.factorize
  File "pandas/_libs/hashtable_class_helper.pxi", line 1880, in pandas._libs.hashtable.PyObjectHashTable.get_labels
  File "pandas/_libs/hashtable_class_helper.pxi", line 1787, in pandas._libs.hashtable.PyObjectHashTable._unique
TypeError: unhashable type: 'numpy.ndarray'

我正在使用Python3.6和熊猫1.1.2。

EN

回答 1

Stack Overflow用户

发布于 2021-12-05 06:42:04

这是我的理论。

熊猫库使用的是所有索引和列的散列值,因此必须为其提供不可变(hashable)变量,但np.array是可变的(更多介绍可变和不变的这里)。用于检查变量是否是可选的。

代码语言:javascript
运行
复制
try:
    hash(the_varible)
except TypeError:
    print( "It's unhashable.")
else:
    print( "It's hashable.")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70231401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档