Matriz de Correlação Pandas

Suraj Joshi 30 janeiro 2023
  1. Gerar Matriz de Correlação utilizando o método DataFrame.corr()
  2. Visualizar a Matriz de Correlação Pandas utilizando o método Matplotlib.pyplot.matshow()
  3. Visualize a matriz de correlação Pandas usando o método seaborn.heatmap()
  4. Visualiza a Matriz de Correlação utilizando a propriedade DataFrame.style
Matriz de Correlação Pandas

Este tutorial irá explicar como podemos gerar um array de correlação utilizando o método DataFrame.corr() e visualizar a matriz de correlação utilizando o método pyplot.matshow() em 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")

Resultado:

       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

Vamos utilizar o método employees_df da DataFrame para explicar como podemos gerar e visualizar um array de correlação.

Gerar Matriz de Correlação utilizando o 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")

Resultado:

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

Gera um DataFrame com valores de correlação entre cada coluna com todas as outras colunas do DataFrame.

Os valores de correlação só serão calculados entre as colunas com valores numéricos. Por defeito, o método corr() utiliza o método Pearson para calcular o coeficiente de correlação. Podemos também utilizar outros métodos como o Kendall e o spearman para calcular o coeficiente de correlação, especificando o valor do parâmetro method no método corr.

Visualizar a Matriz de Correlação Pandas utilizando o 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()

Resultado:

visualizar a matriz de correlação usando o método matshow

Traça a matriz de correlação gerada a partir da DataFrame employees_df utilizando a função matshow() no pacote Matplotlib.pyplot.

Visualize a matriz de correlação Pandas usando o 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:

visualizar a matriz de correlação usando o método do mapa do calor a partir do nascente do mar

Traça a matriz de correlação gerada a partir da DataFrame employees_df, utilizando a função heatmap() no pacote seaborn.

Visualiza a Matriz de Correlação utilizando a propriedade 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 a matriz de correlação usando a propriedade de estilo do objecto DataFrame

A propriedade style do objecto corr_df DataFrame devolve um objecto Styler. Podemos visualizar o objecto DataFrame utilizando o background_gradient para o objecto Styler.

Este método só pode gerar figuras no bloco de notas IPython.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn