使用Pandas Query筛选itemsets返回空DataFrame问题求助
解决方法
首先先确认itemsets字段的实际数据类型:
# 查看第一个元素的类型 print(type(support_values['itemsets'].iloc[0]))
情况1:itemsets实际存储的是元组(最常见,比如mlxtend生成的关联规则结果)
你之前写的(0)在Python里是整数,不是元组,单元素元组需要加逗号(0,),正确筛选语句:
# 筛选元组为(0,)的行 support_values[support_values['itemsets'] == (0,)] # 如果要筛选包含0的所有元组(比如(0,140)这类也会被选中) support_values[support_values['itemsets'].apply(lambda x: 0 in x)]
情况2:itemsets确实是字符串类型
如果输出的类型是str,那可能字符串里有隐藏的空格或格式差异,比如'( 0 )'而不是'(0)',可以用以下方法:
- 先清理字符串格式:
# 去除字符串中的空格 support_values['itemsets'] = support_values['itemsets'].str.replace(' ', '') # 再筛选 support_values[support_values['itemsets'] == '(0)']
- 或者直接用模糊匹配(不考虑空格):
support_values[support_values['itemsets'].str.contains('0', regex=False)]
内容的提问来源于stack exchange,提问作者user21807913
相关产品推荐
相关产品推荐

