从 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
列的唯一元素数?
编辑:
我期待的输出是,
['I like tea', 'cricket '],['basket ball', 'I like coffee', 'cricket '],['basket ball', 'cricket ']
这些是列 col
中的唯一列表。我要输出这些。
编辑 2:
当我将 col
的每个列表转换为元组时,我得到了所需的结果。为什么会这样?
您应该将 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)
我有一个 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
列的唯一元素数?
编辑: 我期待的输出是,
['I like tea', 'cricket '],['basket ball', 'I like coffee', 'cricket '],['basket ball', 'cricket '] 这些是列
col
中的唯一列表。我要输出这些。编辑 2: 当我将
col
的每个列表转换为元组时,我得到了所需的结果。为什么会这样?
您应该将 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)