Matriz de Correlação Pandas
-
Gerar Matriz de Correlação utilizando o método
DataFrame.corr()
-
Visualizar a Matriz de Correlação Pandas utilizando o método
Matplotlib.pyplot.matshow()
-
Visualize a matriz de correlação Pandas usando o método
seaborn.heatmap()
-
Visualiza a Matriz de Correlação utilizando a propriedade
DataFrame.style
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:
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:
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:
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 is a backend software engineer at Matrice.ai.
LinkedIn