用Python包Arules

用Python包Arules,python,dataframe,rpy2,arules,Python,Dataframe,Rpy2,Arules,我正在Python中使用arules。我执行下面的代码来生成所有关联。我想知道如何将arules的输出转换为Python中的某些数据结构。类型为“rpy2.robjects.methods.RS4”的输出if。 --下面是代码--- 下面是一个如何做到这一点的极简主义示例: # prepare the data as a dataframe with boolean values import pandas as pd df = pd.DataFrame ( [ [Tr

我正在Python中使用arules。我执行下面的代码来生成所有关联。我想知道如何将arules的输出转换为Python中的某些数据结构。类型为“rpy2.robjects.methods.RS4”的输出if。 --下面是代码---


下面是一个如何做到这一点的极简主义示例:

# prepare the data as a dataframe with boolean values
import pandas as pd

df = pd.DataFrame (
    [
        [True,True, True],
        [True, False,False],
        [True, True, True],
        [True, False, False],
        [True, True, True],
        [True, False, True],
        [True, True, True],
        [False, False, True],
        [False, True, True],
        [True, False, True],
    ],
    columns=list ('ABC')) 

# set up rpy2
from rpy2.robjects import pandas2ri
pandas2ri.activate()
import rpy2.robjects as ro
from rpy2.robjects.packages import importr
arules = importr("arules")

# run apriori
itsets = arules.apriori(df, 
   parameter = ro.ListVector({"supp": 0.1, "target": "frequent itemsets"}))

# get itemsets as a dataframe
print(arules.DATAFRAME(itsets))

# get quality as a dataframe
print(itsets.slots["quality"])

# get itemsets as a matrix
itemset_as_matrix = ro.r('function(x) as(items(x), "matrix")')
itemset_as_matrix(itsets)

您的预期输出是什么?库('arules')a=c('1','1','1','1','1','1','1','1','1','0','0','1','0','0','1','0')c=c('1','0','1','1','1','1','1')pd=data.frame(a,b,c,stringsAsFactors=TRUE)rules=apriori(pd)r=as(规则,“data.frame”)在R中运行上述代码,我得到下面的输出。如何将python中的输出转换为下面的格式?输出{a=0,b=0}=>{c=1}0.1 1.000 1.2500000 1{a=0,c=1}=>{b=0.1.000 2.00000001{b=0,c=0}=>{a=1.1111}2{a=1,c=0}=>{b=0} 0.2 1.000 2.0000000 2
# prepare the data as a dataframe with boolean values
import pandas as pd

df = pd.DataFrame (
    [
        [True,True, True],
        [True, False,False],
        [True, True, True],
        [True, False, False],
        [True, True, True],
        [True, False, True],
        [True, True, True],
        [False, False, True],
        [False, True, True],
        [True, False, True],
    ],
    columns=list ('ABC')) 

# set up rpy2
from rpy2.robjects import pandas2ri
pandas2ri.activate()
import rpy2.robjects as ro
from rpy2.robjects.packages import importr
arules = importr("arules")

# run apriori
itsets = arules.apriori(df, 
   parameter = ro.ListVector({"supp": 0.1, "target": "frequent itemsets"}))

# get itemsets as a dataframe
print(arules.DATAFRAME(itsets))

# get quality as a dataframe
print(itsets.slots["quality"])

# get itemsets as a matrix
itemset_as_matrix = ro.r('function(x) as(items(x), "matrix")')
itemset_as_matrix(itsets)