首页 > 解决方案 > Frozenset 不在 Spyder 变量资源管理器中显示其内容

问题描述

当我在 Spyder 中打开规则时,将先验算法应用于 Market Basket Optimization 数据集,而不是显示frozenset({'light cream', 'chicken'})节目frozenset object of builtins module

我的代码:

import pandas as pd

# Read dataset
dataset = pd.read_csv('Market_Basket_Optimisation.csv', header = None)
transactions = []
for i in range(0, 7501):
transactions.append([str(dataset.values[i,j]) for j in range(0, 20)])

# Train model
from apyori import apriori
rules = apriori(transactions, min_support = 0.003, min_confidence = 0.2, min_lift = 3, min_length = 2)

# To get the output 
results = list(rules)

数据集

图片供参考:

第一个案例

第二种情况

标签: pythonmachine-learningspyderapriori

解决方案


这里是 Spyder 维护者简短回答:这个问题的原因很简单:我们的变量资源管理器不支持frozenset's。这就是为什么它们不会显示的原因,除非您关闭名为 的选项Exclude unsupported data types,然后它们将显示为通用对象。

长答案:我们不能简单地使用repr对象的 来在变量资源管理器中显示它。那是因为如果你的对象非常复杂(即它有太多的元素或者它由带有 long 的对象组成repr),Spyder 控制台会挂起试图计算它的repr. 经过多年支持复杂的科学工作流程,我们了解到这一点很艰难。

因此,对于每个类型对象,我们需要决定它在变量资源管理器中的显示方式。例如,我们显示数据框的列名以及列表和字典的前十个元素。我们已经有一个小型库可以做到这一点,但是每次人们想要看到新类型的对象时,我们都需要扩展它。

注意:我们计划通过 Spyder 4(将于 2019 年发布)中的插件扩展该过程。


推荐阅读