Pandas Korrelationsmatrix

Suraj Joshi 30 Januar 2023
  1. Erzeugen einer Korrelationsmatrix mit der Methode DataFrame.corr()
  2. Visualisierung der Pandas-Korrelationsmatrix mit der Methode Matplotlib.pyplot.matshow()
  3. Visualisierung der Pandas-Korrelationsmatrix mit der Methode seaborn.heatmap()
  4. Visualisierung der Korrelationsmatrix unter Verwendung der Eigenschaft DataFrame.style
Pandas Korrelationsmatrix

In diesem Tutorial wird erklärt, wie wir eine Korrelationsmatrix mit der Methode DataFrame.corr() erzeugen und die Korrelationsmatrix mit der Methode pyplot.matshow() aus dem Modul Matplotlib visualisieren können.

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")

Ausgabe:

       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

Anhand des DataFrames employee_df wollen wir erklären, wie wir eine Korrelationsmatrix erzeugen und visualisieren können.

Erzeugen einer Korrelationsmatrix mit der Methode 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")

Ausgabe:

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

Es wird ein DataFrame mit Korrelationswerten zwischen jeder Spalte mit jeder anderen Spalte im DataFrame erzeugt.

Die Korrelationswerte werden nur zwischen den Spalten mit numerischen Werten berechnet. Standardmäßig verwendet die Methode corr() die Methode Pearson zur Berechnung des Korrelationskoeffizienten. Wir können auch andere Methoden wie Kendall und Spearman zur Berechnung des Korrelationskoeffizienten verwenden, indem wir den Wert des Parameters method in der Methode corr angeben.

Visualisierung der Pandas-Korrelationsmatrix mit der Methode 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()

Ausgabe:

Visualisierung der Korrelationsmatrix mit der Methode matshow

Es wird die Korrelationsmatrix, die aus dem DataFrame employees_df erzeugt wurde, mit Hilfe der Funktion matshow() aus dem Paket Matplotlib.pyplot dargestellt.

Visualisierung der Pandas-Korrelationsmatrix mit der Methode 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()

Ausgabe:

Visualisierung der Korrelationsmatrix mit der Heatmap-Methode von seaborn

Es wird die Korrelationsmatrix dargestellt, die aus dem DataFrame employees_df mit Hilfe der Funktion heatmap() aus dem Paket seaborn erzeugt wurde.

Visualisierung der Korrelationsmatrix unter Verwendung der Eigenschaft 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")

Ausgabe:

Visualisierung der Korrelationsmatrix unter Verwendung der Eigenschaft style des DataFrame-Objekts

Die Eigenschaft style des DataFrame-Objekts corr_df gibt ein Styler-Objekt zurück. Wir können das DataFrame-Objekt mit Hilfe des background_gradient für das Styler-Objekt visualisieren.

Diese Methode kann nur Zahlen im IPython-Notebook erzeugen.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn