es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Regla Apriori a un dataframe en pandas

Tengo el siguiente problema. Estoy realizando minería de reglas de asociación utilizando el paquete efficient_apriori en Python. Me gustaría guardar mis reglas como un dataframe de pandas. Aquí está mi código:

for rule in rules:
    dict = {
        "left" : [str(rule.lhs).replace(",)",")")],
        "right" : [str(rule.rhs).replace(",)",")")],
        "support" : [str(rule.support)],
        "confidence" : [str(rule.confidence)]
    }
    df = pd.DataFrame.from_dict(dict)

¿Existe una forma mejor que esta?

“`python
Este es el resultado después de imprimir(rule):
{Book1} -> {Book2} (conf: 0.541, supp: 0.057, lift: 4.417, conv: 1.914)

Este es el resultado después de imprimir(type(rule)):
<class 'efficient_apriori.rules.rule'="">
“`

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una mejor manera de guardar tus reglas como un marco de datos de pandas. Puedes crear directamente una lista de diccionarios donde cada diccionario representa una regla con sus correspondientes valores para “left”, “right”, “support” y “confidence”. Luego, puedes pasar esta lista al constructor pd.DataFrame para crear un marco de datos.

    Aquí tienes un ejemplo de código:

    rules_list = []
    for rule in rules:
        rule_dict = {
            "left": str(rule.lhs).replace(",)", ")"),
            "right": str(rule.rhs).replace(",)", ")"),
            "support": rule.support,
            "confidence": rule.confidence
        }
        rules_list.append(rule_dict)
    
    df = pd.DataFrame(rules_list)
    

    Este método es más eficiente porque no estás creando un nuevo diccionario en cada iteración del bucle for, y también funcionará para cualquier cantidad de reglas que tengas.

Comments are closed.