【发布时间】:2021-01-06 07:52:32
【问题描述】:
我有一个熊猫数据框df,其中一列col 的元素是numpy.ndarray 的str 类型。例如,
col
['I like tea', 'cricket ']
['basket ball', 'I like coffee', 'cricket ']
['I like tea', 'cricket ']
['basket ball', 'cricket ']
现在我想在col 中获取此类唯一numpy.ndarray 的数量,以将其转换为分类列,其中新列包含每个唯一numpy.ndarray 的正整数值。当我使用df['col'].unique 时,它会抛出以下错误
TypeError: unhashable type: 'numpy.ndarray'
如何查找此numpy.ndarray 列的唯一元素数?
-
编辑: 我期待的输出是,
['我喜欢茶', '板球'],['篮球', '我喜欢咖啡', '板球'],['篮球', '板球'] 这些是
col列中的唯一列表。我希望将这些输出。 -
编辑 2: 当我将
col的每个列表转换为一个元组时,我得到了所需的结果。为什么会这样?
【问题讨论】:
-
请添加上述示例的预期输出
-
在编辑中添加了示例输出
-
@MonkeyDLuffy 您添加的预期输出不是唯一的
-
发生这种情况是因为元组是可散列的......而列表不是......
-
既然 pandas 数据框是可变类型,为什么它的列必须是不可变的?为什么 df['column'].unique() 要求列具有不可变类型?
标签: python pandas dataframe numpy data-science