Bedingte Formatierung in Pandas
Bild vom Autor | DALLE-3 & Canva

Pandas wird zwar hauptsächlich zur Datenmanipulation und -analyse verwendet, bietet aber auch grundlegende Datenvisualisierungsfunktionen. Einfache Datenrahmen können die Informationen jedoch überladen und überwältigend erscheinen lassen. Was kann additionally getan werden, um dies zu verbessern? Wenn Sie bereits mit Excel gearbeitet haben, wissen Sie, dass Sie wichtige Werte mit unterschiedlichen Farben, Schriftarten usw. hervorheben können. Die Idee hinter der Verwendung dieser Stile und Farben besteht darin, die Informationen auf effektive Weise zu kommunizieren. Ähnliche Arbeit können Sie auch mit Pandas-Datenrahmen erledigen, indem Sie bedingte Formatierung und das Styler-Objekt verwenden.

In diesem Artikel erfahren Sie, was bedingte Formatierung ist und wie Sie damit die Lesbarkeit Ihrer Daten verbessern können.

Bedingte Formatierung

Bedingte Formatierung ist eine Funktion in Pandas, mit der Sie Zellen anhand bestimmter Kriterien formatieren können. Sie können damit ganz einfach Ausreißer hervorheben, Tendencies visualisieren oder wichtige Datenpunkte hervorheben. Das Styler-Objekt in Pandas bietet eine praktische Möglichkeit, bedingte Formatierung anzuwenden. Bevor wir uns den Beispielen zuwenden, werfen wir einen kurzen Blick darauf, wie das Styler-Objekt funktioniert.

Was ist das Styler-Objekt und wie funktioniert es?

Sie können die visuelle Darstellung des Datenrahmens steuern, indem Sie den property. This property returns a Styler object, which is liable for styling the dataframe. The Styler object permits you to manipulate the CSS properties of the dataframe to create a visually interesting and informative show. The generic syntax is as follows:

df.fashion.<technique>(<arguments>)

Dabei ist die spezifische Formatierungsfunktion, die Sie anwenden möchten, und sind die von dieser Funktion benötigten Parameter. Das Styler-Objekt gibt den formatierten Datenrahmen zurück, ohne den ursprünglichen zu ändern. Es gibt zwei Ansätze für die Verwendung der bedingten Formatierung mit dem Styler-Objekt:

  • Integrierte Stile: So wenden Sie Schnellformatierungsstile auf Ihren Datenrahmen an
  • Benutzerdefinierte Stilisierung: Erstellen Sie Ihre eigenen Formatierungsregeln für das Styler-Objekt und übergeben Sie diese über eine der folgenden Methoden (Styler.applymap: elementweise oder Styler.apply: spalten-/zeilen-/tabellenweise)

Nun werden wir einige Beispiele beider Ansätze durchgehen, um Ihnen dabei zu helfen, die Visualisierung Ihrer Daten zu verbessern.

Beispiele: Integrierte Stile

Lassen Sie uns einen Dummy-Aktienkurs-Datensatz mit Spalten für Datum, Selbstkostenpreis, Zufriedenheitsbewertung und Verkaufsbetrag erstellen, um die folgenden Beispiele zu demonstrieren:

import pandas as pd
import numpy as np

information = {'Date': ('2024-03-05', '2024-03-06', '2024-03-07', '2024-03-08', '2024-03-09', '2024-03-10'),
        'Price Value': (100, 120, 110, 1500, 1600, 1550),
        'Satisfaction Rating': (90, 80, 70, 95, 85, 75),
        'Gross sales Quantity': (1000, 800, 1200, 900, 1100, None)}

df = pd.DataFrame(information)
df

Ausgabe:

Unformatierter DatenrahmenUnformatierter Datenrahmen
Ursprünglicher unformatierter Datenrahmen

1. Hervorheben von Maximal- und Minimalwerten

Wir können benutzen highlight_max Und highlight_min Funktionen zum Hervorheben der Maximal- und Minimalwerte in einer Spalte oder Zeile. Für die Spalte setzen Sie axis=0 wie folgt:

# Highlighting Most and Minimal Values
df.fashion.highlight_max(coloration="inexperienced", axis=0 , subset=('Price Value', 'Satisfaction Rating', 'Gross sales Quantity')).highlight_min(coloration="crimson", axis=0 , subset=('Price Value', 'Satisfaction Rating', 'Gross sales Quantity'))

Ausgabe:

Max- und Min-WerteMax- und Min-Werte
Max- und Min-Werte

2. Farbverläufe anwenden

Farbverläufe sind eine effektive Möglichkeit, die Werte in Ihren Daten zu visualisieren. In diesem Fall wenden wir den Verlauf auf Zufriedenheitswerte an, indem wir die Farbkarte auf „viridis“ setzen. Dies ist eine Artwork Farbcodierung, die von Violett (niedrige Werte) bis Gelb (hohe Werte) reicht. So können Sie das tun:

# Making use of Coloration Gradients
df.fashion.background_gradient(cmap='viridis', subset=('Satisfaction Rating'))

Ausgabe:

Farbkarte - viridisFarbkarte - viridis
Farbkarte - viridis

3. Hervorheben von Null- oder fehlenden Werten

Bei großen Datensätzen wird es schwierig, Nullwerte oder fehlende Werte zu identifizieren. Sie können die bedingte Formatierung mithilfe der integrierten df.fashion.highlight_null Funktion für diesen Zweck. In diesem Fall fehlt beispielsweise der Umsatzbetrag des 6. Eintrags. Sie können diese Info wie folgt hervorheben:

# Highlighting Null or Lacking Values
df.fashion.highlight_null('yellow', subset=('Gross sales Quantity'))

Ausgabe:

Fehlende Werte hervorhebenFehlende Werte hervorheben
Fehlende Werte hervorheben

Beispiele: Benutzerdefinierte Stilisierung mit apply() und applymap()

1. Bedingte Formatierung für Ausreißer

Angenommen, wir haben einen Datensatz zu Wohnimmobilien mit den entsprechenden Preisen und möchten die Häuser mit Ausreißerpreisen hervorheben (d. h. Preise, die deutlich höher oder niedriger sind als in den anderen Vierteln). Dies kann wie folgt erfolgen:

import pandas as pd
import numpy as np

# Home costs dataset
df = pd.DataFrame({
   'Neighborhood': ('H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7'),
   'Value': (50, 300, 360, 390, 420, 450, 1000),
})

# Calculate Q1 (twenty fifth percentile), Q3 (seventy fifth percentile) and Interquartile Vary (IQR)
q1 = df('Value').quantile(0.25)
q3 = df('Value').quantile(0.75)
iqr = q3 - q1

# Bounds for outliers
lower_bound = q1 - 1.5 * iqr
upper_bound = q3 + 1.5 * iqr

# Customized perform to focus on outliers
def highlight_outliers(val):
   if val < lower_bound or val > upper_bound:
      return 'background-color: yellow; font-weight: daring; coloration: black'
   else:
      return ''

df.fashion.applymap(highlight_outliers, subset=('Value'))

Ausgabe:

Hervorheben von AusreißernHervorheben von Ausreißern
Hervorheben von Ausreißern

2. Tendencies hervorheben

Angenommen, Sie leiten ein Unternehmen und erfassen täglich Ihre Umsätze. Um die Tendencies zu analysieren, möchten Sie die Tage hervorheben, an denen Ihre täglichen Umsätze um 5 % oder mehr steigen. Dies können Sie mithilfe einer benutzerdefinierten Funktion und der Apply-Methode in Pandas erreichen. So geht's:

import pandas as pd

# Dataset of Firm's Gross sales
information = {'date': ('2024-02-10', '2024-02-11', '2024-02-12', '2024-02-13', '2024-02-14'),
        'gross sales': (100, 105, 110, 115, 125)}

df = pd.DataFrame(information)

# Every day share change
df('pct_change') = df('gross sales').pct_change() * 100

# Spotlight the day if gross sales elevated by greater than 5%
def highlight_trend(row):
    return ('background-color: inexperienced; border: 2px strong black; font-weight: daring' if row('pct_change') > 5 else '' for _ in row)

df.fashion.apply(highlight_trend, axis=1)

Ausgabe:

Markieren Sie src=Highlight >5 % Umsatzsteigerung
Spotlight >5 % Umsatzsteigerung

3. Hervorheben korrelierter Spalten

Korrelierte Spalten sind wichtig, da sie Beziehungen zwischen verschiedenen Variablen zeigen. Wenn wir beispielsweise einen Datensatz mit Alter, Einkommen und Ausgabegewohnheiten haben und unsere Analyse eine hohe Korrelation (nahe 1) zwischen Alter und Einkommen zeigt, deutet dies darauf hin, dass ältere Menschen im Allgemeinen höhere Einkommen haben. Das Hervorheben korrelierter Spalten hilft dabei, diese Beziehungen visuell zu identifizieren. Dieser Ansatz wird äußerst hilfreich, wenn die Dimensionalität Ihrer Daten zunimmt. Sehen wir uns ein Beispiel an, um dieses Konzept besser zu verstehen:

import pandas as pd

# Dataset of individuals
information = {
    'age': (30, 35, 40, 45, 50),
    'revenue': (60000, 66000, 70000, 75000, 100000),
    'spending': (10000, 15000, 20000, 18000, 12000)
}

df = pd.DataFrame(information)

# Calculate the correlation matrix
corr_matrix = df.corr()

# Spotlight extremely correlated columns
def highlight_corr(val):
    if val != 1.0 and abs(val) > 0.5:   # Exclude self-correlation
        return 'background-color: blue; text-decoration: underline'
    else:
        return ''

corr_matrix.fashion.applymap(highlight_corr)

Ausgabe:

Korrelierte SpaltenKorrelierte Spalten
Korrelierte Spalten

Einpacken

Dies sind nur einige der Beispiele, die ich als Einstieg gezeigt habe, um Ihre Datenvisualisierung zu verbessern. Sie können ähnliche Techniken auf verschiedene andere Probleme anwenden, um die Datenvisualisierung zu verbessern, z. B. durch Hervorheben doppelter Zeilen, Gruppieren in Kategorien und Auswählen unterschiedlicher Formatierungen für jede Kategorie oder Hervorheben von Spitzenwerten. Darüber hinaus gibt es viele andere CSS-Optionen, die Sie in der amtliche Dokumentation. Sie können sogar verschiedene Eigenschaften beim Hovern definieren, wie z. B. Textual content vergrößern oder Farbe ändern. Sehen Sie sich die "Lustige Sachen"-Abschnitt für weitere coole Ideen. Dieser Artikel ist Teil meiner Pandas-Reihe. Wenn Ihnen das gefallen hat, gibt es additionally noch viel mehr zu entdecken. Weitere Tipps, Methods und Tutorials finden Sie auf meiner Autorenseite.

Kanwal Mehreen Kanwal ist Ingenieurin für maschinelles Lernen und technische Autorin mit einer tiefen Leidenschaft für Datenwissenschaft und die Schnittstelle zwischen KI und Medizin. Sie ist Mitautorin des E-Books „Maximizing Productiveness with ChatGPT“. Als Google Technology Scholar 2022 für APAC setzt sie sich für Vielfalt und akademische Exzellenz ein. Sie ist außerdem als Teradata Variety in Tech Scholar, Mitacs Globalink Analysis Scholar und Harvard WeCode Scholar anerkannt. Kanwal ist eine leidenschaftliche Verfechterin des Wandels und hat FEMCodes gegründet, um Frauen in MINT-Fächern zu stärken.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert