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

Getting all unique elements from a pandas DataFrame column of numpy arrays of strings

我有一个 pandas 数据框 df,其中一列 col 的元素是 str 类型的 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 列的唯一元素数?

您应该将 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)