首页 > 解决方案 > 关于熊猫的问题-> 忽略的异常:不可散列的类型:'numpy.ndarray'

问题描述

我通过按两个值分组创建了一个 pandas DataFrame,并收到了一个类似于下面的表:

A栏
塞缪尔 [1,2,3]
约书亚 [4,5,6]
理查德 [7,8,9]
迈克尔 [7,8,9]
亨利 [7,8,9]

接下来,我按 A 列分组以计算每个数字列表有多少个唯一的名字,并收到以下错误:

Exception ignored in: 'pandas._libs.index.IndexEngine._call_map_locations'
Traceback (most recent call last):
  File "pandas\_libs\hashtable_class_helper.pxi", line 4588, in > pandas._libs.hashtable.PyObjectHashTable.map_locations
TypeError: unhashable type: 'numpy.ndarray'

当我返回一个索引为 numpy 数组类型的熊猫系列时,我感到很困惑。为什么在这种情况下忽略了异常?

标签: pythonpandasnumpyexceptiontypeerror

解决方案


尝试通过df['Column A'].map(tuple)或将列表转换为元组df['Column A'].map(str)

df.groupby(df['Column A'].map(tuple))['First Name'].unique()

Column A
(1, 2, 3)                     [Samuel]
(4, 5, 6)                     [Joshua]
(7, 8, 9)    [Richard, Michael, Henry]
Name: First Name, dtype: object

推荐阅读