Python 如何在具有';那是一个numpy数组?

Python 如何在具有';那是一个numpy数组?,python,pandas,Python,Pandas,我正在尝试删除重复项,它适用于普通的pandas列,但当我尝试在numpy数组的列上执行此操作时,出现了一个错误: new_df = new_df.drop_duplicates(subset=['ticker', 'year', 'embedding']) 我得到这个错误: 4 frames /usr/local/lib/python3.7/dist-packages/pandas/core/algorithms.py in _factorize_array(values, na_senti

我正在尝试删除重复项,它适用于普通的pandas列,但当我尝试在numpy数组的列上执行此操作时,出现了一个错误:

new_df = new_df.drop_duplicates(subset=['ticker', 'year', 'embedding'])
我得到这个错误:

4 frames
/usr/local/lib/python3.7/dist-packages/pandas/core/algorithms.py in _factorize_array(values, na_sentinel, size_hint, na_value, mask)
    509     table = hash_klass(size_hint or len(values))
    510     uniques, codes = table.factorize(
--> 511         values, na_sentinel=na_sentinel, na_value=na_value, mask=mask
    512     )
    513 

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.factorize()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable._unique()

TypeError: unhashable type: 'numpy.ndarray'
此外,如果有帮助,请看以下我的数据:

ticker  year    embedding
0   a.us    2020.0  [0.0, 0.0, 0.0, 0.62235785, 0.0, 0.27049118, 0...
1   a.us    2020.0  [0.0, 0.0, 0.0, 0.62235785, 0.0, 0.27049118, 0..
我曾考虑强制转换为字符串,但我需要pandas列中的数组保持为numpy,因此我不确定如何在此处干净地删除重复项。

这里我将做什么:

>>> df
  ticker  year                                     embedding
0   a.us  2020  [0.0, 0.0, 0.0, 0.62235785, 0.0, 0.27049118]
1   a.us  2020  [0.0, 0.0, 0.0, 0.62235785, 0.0, 0.27049118]

>>> cond1 = df.drop(columns="embedding").duplicated()
>>> cond1
0    False
1     True
dtype: bool

>>> cond2 = pd.DataFrame(df["embedding"].to_list()).duplicated()
>>> cond2
0    False
1     True
dtype: bool
要删除重复值,请执行以下操作:

>>> df[~(cond1 & cond2)]
  ticker  year                                     embedding
0   a.us  2020  [0.0, 0.0, 0.0, 0.62235785, 0.0, 0.27049118]

这似乎是一个解决方案。不要在单元格中存储numpy阵列。您可以有1000列,每个列对应嵌入的一个组件。您好,当我执行cond1=new_df.drop(columns=“embedding”).duplicated()-我在TypeError上面得到了相同的错误:unhable type:'numpy.ndarray'new_df.info()的输出是什么??