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.

Problema al crear el coeficiente de correlación de Pearson en Python.

Problema: Creación del coeficiente de correlación de Pearson dependiente de los valores de la tercera columna.

Para comenzar, tengo un dataframe con 3 columnas. A, B y C.

La columna A y B contienen valores float64, mientras que en C hay objetos.
Quiero obtener el coeficiente de correlación de Pearson para las columnas A y B.

print(df[‘A’].corr(df[‘B’],method=’pearson’)) –> Esto funciona bien para toda la columna.

En el siguiente paso tengo dificultades. La columna C solo tiene 2 valores. Llamémoslos c1 y c2.
Ahora quiero obtener los coeficientes para c1 y c2.
Intenté con

print(df[‘A’]&df[‘C’]==’c1′).corr((df[‘B’]&df[‘C’]==’c1′),method=’pearson’)

y de la misma manera para c2.
El error que se muestra es: TypeError: unsupported operand type(s) for &: ‘float’ and ‘str’
¿Cómo puedo obtener ambos coeficientes sin dividir el dataframe?

Gracias de antemano.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para obtener los coeficientes para cada valor en la columna C, puedes usar la función groupby() para agrupar el dataframe por los valores en la columna C y luego calcular el coeficiente de correlación dentro de cada grupo. Aquí tienes un ejemplo de código:

    grouped = df.groupby('C')
    for name, group in grouped:
        coef = group['A'].corr(group['B'], method='pearson')
        print('Coeficiente de correlación para {}: {}'.format(name, coef))
    

    Esto imprimirá el coeficiente de correlación para ambos valores en la columna C. La función groupby() divide el dataframe en grupos separados basados en los valores únicos en la columna C, y el bucle for itera sobre cada grupo. Luego, se utiliza la función corr() para calcular el coeficiente de correlación dentro de cada grupo.

Comments are closed.