从字符串的numpy数组的DataFrame列获取所有唯一元素

2024-05-16 20:34:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据帧df,其中一列的元素colstr类型的numpy.ndarray。比如说,

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的每个列表转换成一个元组时,我得到了所需的结果。为什么会这样


Tags: 数据numpy元素编辑pandasdf列表col
2条回答

您应该将np数组转换为哈希类型

试试这个:

df['col'].apply(tuple).unique()

或者,如果您希望列表中包含唯一的个人,而不是列表本身:

df['col'].apply(tuple).explode().unique()

从来都不知道路飞在学Python来打败凯多。哈哈

你应该试试这个:

df['col']=[list(i) for i in df['col']]
list(df['col'].value_counts().index)

相关问题 更多 >