Matrice di correlazione Pandas

Suraj Joshi 30 gennaio 2023
  1. Genera matrice di correlazione utilizzando il metodo DataFrame.corr()
  2. Visualizza la matrice di correlazione di Pandas usando il metodo Matplotlib.pyplot.matshow()
  3. Visualizza la matrice di correlazione di Pandas usando il metodo seaborn.heatmap()
  4. Visualizza la matrice di correlazione utilizzando la proprietà DataFrame.style
Matrice di correlazione Pandas

Questo tutorial spiegherà come possiamo generare un array di correlazione usando il metodo DataFrame.corr() e visualizzare la matrice di correlazione usando il metodo pyplot.matshow() in 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")

Produzione:

       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

Useremo il DataFrame employees_df per spiegare come possiamo generare e visualizzare un array di correlazione.

Genera matrice di correlazione utilizzando il metodo 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")

Produzione:

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 valori di correlazione tra ogni colonna con ogni altra colonna nel DataFrame.

I valori di correlazione verranno calcolati solo tra le colonne con valori numerici. Per impostazione predefinita, il metodo corr() utilizza il metodo Pearson per calcolare il coefficiente di correlazione. Possiamo anche usare altri metodi come Kendall e spearman per calcolare il coefficiente di correlazione specificando il valore del parametro method nel metodo corr.

Visualizza la matrice di correlazione di Pandas usando il metodo 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()

Produzione:

visualizzare la matrice di correlazione utilizzando il metodo matshow

Traccia la matrice di correlazione generata dal DataFrame dipendenti_df utilizzando la funzione matshow() nel pacchetto Matplotlib.pyplot.

Visualizza la matrice di correlazione di Pandas usando il metodo 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()

Produzione:

visualizzare la matrice di correlazione utilizzando il metodo heatmap di seaborn

Traccia la matrice di correlazione generata dal DataFrame dipendenti_df utilizzando la funzione heatmap() nel pacchetto seaborn.

Visualizza la matrice di correlazione utilizzando la proprietà 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")

Produzione:

Visualizza la matrice di correlazione utilizzando la proprietà style dell’oggetto DataFrame

La proprietà style dell’oggetto DataFrame corr_df restituisce un oggetto Styler. Possiamo visualizzare l’oggetto DataFrame usando background_gradient per l’oggetto Styler.

Questo metodo può generare solo figure nel notebook IPython.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn