Matriz de Correlación Pandas
-
Generar un array de correlación utilizando el método
DataFrame.corr()
-
Visualizar el array de correlación de Pandas con el método
Matplotlib.pyplot.matshow()
-
Visualiza el array de correlación de Pandas utilizando el método
seaborn.heatmap()
-
Visualiza el array de correlación utilizando la propiedad
DataFrame.style
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:
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:
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:
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 is a backend software engineer at Matrice.ai.
LinkedIn