我正在尝试比较两列sar_details_sent_norm_trigrams_和 熊猫数据框中的caap_details_sent_norm_trigrams_。也有其他专栏,但这些是我正在比较的两列。
我本质上是想保留两列文本值相同的记录。 我已经执行了几种方法,但是,我不断收到以下错误消息:
TypeError:不可哈希类型:'set'
因此,我要么需要解决为什么我会收到此消息并加以解决,要么尝试其他方法。 任何建议将不胜感激。
谢谢。
代码段:
# Set with unique terms
df_sar['sar_details_sent_norm_trigrams_unique'] = df_sar['sar_details_sent_norm_trigrams_'].apply(lambda x: set([trigram for sent in x for trigram in sent]))
# Set with unique terms
df_caap['caap_details_sent_norm_trigrams_unique'] = df_caap['caap_details_sent_norm_trigrams_'].apply(lambda x: set([trigram for sent in x for trigram in sent]))
#Attempt 1:
df_caap[df_caap.caap_details_sent_norm_trigrams_unique.isin(df_sar.sar_details_sent_norm_trigrams_unique)]
#Attempt 2:
set(df_caap.caap_details_sent_norm_trigrams_unique).intersection(set(df_sar.sar_details_sent_norm_trigrams_unique))
TypeError跟踪(最近一次通话) 在()21
set(df1.columns).intersection(set(df2.columns))22
---> 23组(df_caap.caap_details_sent_norm_trigrams_unique).intersection(set(df_sar.sar_details_sent_norm_trigrams_unique))
TypeError:不可哈希类型:'set'
答案 0 :(得分:0)
set
是可变数据类型,因此为它计算哈希值用作哈希表数据结构(例如,dict,set)中的键是不安全的,因为如果数据结构发生突变,则哈希值可能会改变,这将违反哈希表不变式。相反,您可以使用不可变的frozenset
,并且可以将其用作哈希表中的键。