Matriz de Correlación Pandas

Suraj Joshi 30 enero 2023
  1. Generar un array de correlación utilizando el método DataFrame.corr()
  2. Visualizar el array de correlación de Pandas con el método Matplotlib.pyplot.matshow()
  3. Visualiza el array de correlación de Pandas utilizando el método seaborn.heatmap()
  4. Visualiza el array de correlación utilizando la propiedad DataFrame.style
Matriz de Correlación Pandas

Este tutorial explicará cómo podemos generar un array de correlación utilizando el método DataFrame.corr() y visualizar el array de correlación utilizando el método pyplot.matshow() de Matplotlib.

import pandas as pd

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

print(employees_df, "\n")

Producción :

       Name  Age  Weight(KG)  Height(meters)  Salary($)
0  Jonathan   20          65            1.60       3200
1      Will   22          75            1.70       3500
2   Michael   29          80            1.85       4000
3      Liva   20          60            1.69       2090
4       Sia   20          63            1.80       2500
5     Alice   21          70            1.75       3600

Utilizaremos el DataFrame employees_df para explicar cómo podemos generar y visualizar un array de correlación.

Generar un array de correlación utilizando el método DataFrame.corr()

import pandas as pd

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

print("The DataFrame of Employees is:")
print(employees_df, "\n")

corr_df = employees_df.corr()
print("The correlation DataFrame is:")
print(corr_df, "\n")

Producción :

The DataFrame of Employees is:
       Name  Age  Weight(KG)  Height(meters)  Salary($)
0  Jonathan   20          65            1.60       3200
1      Will   22          75            1.70       3500
2   Michael   29          80            1.85       4000
3      Liva   20          60            1.69       2090
4       Sia   20          63            1.80       2500
5     Alice   21          70            1.75       3600

The correlation DataFrame is:
                     Age  Weight(KG)  Height(meters)  Salary($)
Age             1.000000    0.848959        0.655252   0.695206
Weight(KG)      0.848959    1.000000        0.480998   0.914861
Height(meters)  0.655252    0.480998        1.000000   0.285423
Salary($)       0.695206    0.914861        0.285423   1.000000

Genera un DataFrame con valores de correlación entre cada columna con cada una de las otras columnas del DataFrame.

Los valores de correlación sólo se calcularán entre las columnas con valores numéricos. Por defecto, el método corr() utiliza el método Pearson para calcular el coeficiente de correlación. También podemos utilizar otros métodos como Kendall y spearman para calcular el coeficiente de correlación especificando el valor del parámetro method en el método corr.

Visualizar el array de correlación de Pandas con el método Matplotlib.pyplot.matshow()

import pandas as pd
import matplotlib.pyplot as plt

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

corr_df = employees_df.corr(method="pearson")

plt.matshow(corr_df)
plt.show()

Producción:

Visualiza el array de correlación utilizando el método matshow

Traza el array de correlación generada a partir del DataFrame employees_df utilizando la función matshow() del paquete Matplotlib.pyplot.

Visualiza el array de correlación de Pandas utilizando el método seaborn.heatmap()

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

corr_df = employees_df.corr(method="pearson")

plt.figure(figsize=(8, 6))
sns.heatmap(corr_df, annot=True)
plt.show()

Resultado:

visualiza el array de correlación utilizando el método heatmap de seaborn

Traza el array de correlación generada a partir del DataFrame employees_df utilizando la función heatmap() del paquete seaborn.

Visualiza el array de correlación utilizando la propiedad DataFrame.style

import pandas as pd

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

corr_df = employees_df.corr(method="pearson")

corr_df.style.background_gradient(cmap="coolwarm")

Resultado:

Visualizar el array de correlación utilizando la propiedad style del objeto DataFrame

La propiedad style del objeto DataFrame corr_df devuelve un objeto Styler. Podemos visualizar el objeto DataFrame utilizando el background_gradient del objeto Styler.

Este método sólo puede generar figuras en el cuaderno IPython.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn