Frozenset不在Spyder Variable Explorer中显示其内容

问题描述 投票:0回答:4

[在我在Spyder中打开规则时,对市场购物篮优化数据集应用了先验算法后,没有显示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)

Dataset

供参考的图像:

First case

Second case

python machine-learning spyder apriori
4个回答
3
投票

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

长回答:我们不能简单地使用对象的repr在变量浏览器中显示该对象。这是因为,如果您的对象非常复杂(即,元素太多或由repr长的对象组成),则Spyder控制台将挂起,尝试计算其repr。经过多年支持复杂的科学工作流程,我们了解到了这一艰辛的方法。

因此,对于每个类型对象,我们需要决定如何在变量资源管理器中显示它。例如,我们显示数据框的列名称以及列表和字典的前十个元素。我们已经有一个小型图书馆可以这样做,但是每当人们希望看到新型对象时,我们都需要对其进行扩展。

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


0
投票

您需要执行print(results),因为Spyder中的变量资源管理器不支持Frozenset数据类型。


0
投票
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df=pd.read_csv("Market_Basket_Optimisation.csv",header=None)
transaction=[]
for i in range(0,7501):
    transaction.append([str(df.values[i,j]) for j in range(0,20)])

from apyori import apriori
rules = apriori(transaction, min_support = 0.003, min_confidence = 0.2, min_lift = 3, min_length = 2)

result=list(rules)

results=str(result)

frozensets=results.split("RelationRecord")

-1
投票

要打印每条规则,并在两者之间稍加分隔,请尝试“

for i in results:
    print(i)
    print('**********')
© www.soinside.com 2019 - 2024. All rights reserved.