You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

统计itemset类型字典键在DataFrame中的精确匹配出现次数

问题原因

  • 类型不匹配:你字典的键是set类型,而DataFrame的basket列存储的是list类型,二者即使包含的元素完全一致,相等判断也会返回False,所以in判断永远不会触发,统计值始终为0。
  • 字典键类型非法:Python中普通set是不可哈希类型,无法作为字典的键,你示例中的字典写法实际运行会直接报错,需要替换为可哈希的frozenset类型作为键。

解决方案

首先修正字典的键类型:

# 将原字典的键替换为可哈希的frozenset
dict_of_items = {
    frozenset({'apple','banana','pear'}): 0, 
    frozenset({'banana', 'orange', 'squash'}): 0
}

执行统计逻辑:

# 将basket列的所有列表转为frozenset,和字典键类型对齐
df['basket_set'] = df['basket'].apply(frozenset)
# 批量统计所有集合的出现次数,比逐行遍历效率更高
item_counts = df['basket_set'].value_counts()
# 批量更新字典的计数
for itemset in dict_of_items:
    dict_of_items[itemset] = item_counts.get(itemset, 0)

运行后dict_of_items就是你期望的计数结果。

内容的提问来源于stack exchange,提问作者Nekojell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:36:01