Warum Rankings in der Praxis so wichtig sind

In der Unternehmenspraxis geht es häufig nicht um alle Daten, sondern um die wichtigsten. Typische Fragestellungen sind:

  • Welche Produkte bringen den meisten Umsatz?
  • In welchen Städten ist das Unternehmen besonders erfolgreich?
  • Welche Vertriebskanäle performen am besten?
  • Welche Segmente sind besonders profitabel?
  • Welcher Monat oder welches Quartal war am stärksten?

Diese Fragen führen immer zu Ranglisten (Rankings).

In Excel würden Sie dafür Pivot-Tabellen erstellen, sortieren und manuell filtern. Mit Pandas geht das deutlich strukturierter und ist sofort automatisierbar.

Voraussetzung: Bibliotheken importieren

Bevor sie starten, muss sichergestellt sein, dass die benötigten Bibliotheken für Python importiert sind. Im Folgenden werden Pandas und die Bibliothek für Diagramme, matplotlib, benötigt. Entsprechend nutzen Sie den Python-Code:

import pandas as pd
import matplotlib.pyplot as plt

Da Sie Python in Excel verwenden, sind diese Bibliotheken in der Regel bereits automatisch geladen. In einer normalen Python-Umgebung (zum Beispiel Jupyter oder VS Code) fügen Sie diese Zeilen am Anfang Ihres Skripts ein.

Datensatz laden und vorbereiten

Für die folgenden Datenanalysen und Darstellungen wird der folgende Datensatz aus einer Excel-Tabelle genutzt. Diesen importieren Sie in Pandas und berechnen im Anschluss aus der Verkaufsmenge und dem Preis den Umsatz mit:

umsatz = xl("Umsatzdaten[#Alle]", headers=True)
umsatz["Umsatz"] = umsatz["Preis"] * umsatz["Verkaufsmenge"]
umsatz

Beispiel-Datensatz für die Datenanalyse mit Pandas und Python (Auszug)

Tipp: Falls in den Quelldaten fehlende Werte enthalten sind, sollten Sie diese vor der Analyse prüfen und gegebenenfalls mit fillna(0) oder einer passenden Logik behandeln.

Grundprinzip von Rankings

Ein Ranking besteht in Pandas immer aus drei logischen Schritten:

  1. Daten gruppieren (zum Beispiel nach Produkt)
  2. Kennzahl berechnen (zum Beispiel Summe des Umsatzes)
  3. Ergebnis sortieren

Je nach Fragestellung kann die Kennzahl Umsatz, Menge, Marge, Kundenanzahl oder ein anderer Wert verwendet werden.

Top-Produkte nach Umsatz

Der Standardweg führt über die Sortierung der Ausgabe nach der gewünschten Kennzahl:

umsatz.groupby("Produkt")["Umsatz"].sum().reset_index().sort_values("Umsatz", ascending=False)

Damit sehen Sie sofort, welche Produkte am erfolgreichsten und welche weniger relevant sind.

Sortierte Umsatzliste für die einzelnen Produkte

Hinweis: Produkte ohne Umsatz tauchen im Ranking nicht auf. Falls Sie auch Nullen sehen möchten, verwenden Sie .sum(min_count=1) oder füllen Sie vorher fehlende Werte auf.

Top 5 Produkte anzeigen

Nun wollen Sie in Ihrer Ergebnistabelle nicht alle Produkte sehen, sondern nur die fünf mit dem höchsten Umsatz. In Excel würden Sie den Top-10-Filter nutzen. In Pandas gibt es zwei Wege.

Variante A (klassisch):

umsatz.groupby("Produkt")["Umsatz"].sum().reset_index().sort_values("Umsatz", ascending=False).head(5)

Mit dem Parameter head(5) beschränken Sie die Ausgabe auf die fünf Einträge, die oben auf der Ergebnisliste stehen.

Ausgabe der fünf umsatzstärksten Produkte durch Sortierung und head()

Variante B (optimiert):

Diese Pandas-Funktion ist kürzer und speziell für Top-Listen optimiert:

umsatz.groupby("Produkt")["Umsatz"].sum().nlargest(5)

Entsprechend können Sie aus Ihrem Datensatz ermitteln, welche Städte und welche Vertriebskanäle die größten Umsätze haben. Sie ersetzen dazu einfach "Produkt" durch "Stadt" oder "Vertriebskanal" (die entsprechenden Spaltenbezeichnungen).

Ausgabe der fünf umsatzstärksten Produkte mit nlargest()

Hinweis: nlargest gibt eine Serie zurück (mit dem Produkt als Index). Wenn mehrere Produkte denselben Umsatzwert haben, kann nlargest() mit dem Parameter keep="all" alle Gleichstände einschließen.

Ranking nach mehreren Gruppen gleichzeitig

Manchmal reicht eine einzelne Gruppierung nicht aus. Wenn Sie zum Beispiel gleichzeitig nach Stadt und Produkt auswerten möchten, übergeben Sie einfach eine Liste an groupby():

umsatz.groupby(["Stadt", "Produkt"])["Umsatz"].sum().reset_index().sort_values("Umsatz", ascending=False)

So sehen Sie auf einen Blick, welches Produkt in welcher Stadt am stärksten abschneidet – ohne mehrere separate Auswertungen erstellen zu müssen.

Kombination mehrerer Merkmale für eine Rangliste

Kombination mehrerer Kennzahlen im Ranking

Rankings werden noch stärker, wenn mehrere Kennzahlen kombiniert werden, um zum Beispiel Umsatz und Verkaufsmenge gleichzeitig zu sehen:

umsatz.groupby("Produkt").agg(
    Umsatz=("Umsatz", "sum"),
    Menge=("Verkaufsmenge", "sum")
).reset_index().sort_values(["Umsatz", "Menge"], ascending=False)

So sehen Sie nicht nur den Umsatz, sondern auch, ob ein Produkt zusätzlich über hohe Stückzahlen getragen wird.

Rangliste mit mehreren Kennzahlen als sortierte Liste

Rangnummern hinzufügen

Sie können außerdem eine feste Rangnummer als eigene Spalte hinzufügen.

ranking = umsatz.groupby("Produkt").agg(Umsatz=("Umsatz", "sum")).reset_index()
ranking = ranking.sort_values("Umsatz", ascending=False).reset_index(drop=True)

Mit method="min" behandeln Sie Gleichstände wie in Excel:

ranking["Rang"] = ranking["Umsatz"].rank(ascending=False, method="min").astype(int)

Ergänzend können Sie dann noch den Umsatzanteil für Ihre Top-Produkte berechnen und ausgeben. Und mit den kumulierten Werten des Umsatzanteils schaffen Sie die Basis für eine ABC-Analyse für Ihre Produkte:

ranking["Anteil_%"] = (ranking["Umsatz"] / ranking["Umsatz"].sum() * 100).round(1)
ranking["Kumuliert_%"] = ranking["Anteil_%"].cumsum().round(1)
ranking

Rangliste der Produkte nach Umsatz mit Umsatzanteil und kumulierten Umsatzanteilen

Mit der method-Option steuern Sie, wie Gleichstände behandelt werden:

  • min: wie Excel-Standard
  • dense: lückenlos
  • first: nach Reihenfolge im Datensatz

Mit .round(1) werden die Prozentwerte auf eine Dezimalstelle nach dem Komma gerundet. 

Top-Analysen mit Filter kombinieren

Nun wollen Sie die Top-Produkte, aber nur für den Markt „Deutschland" darstellen. Dazu nutzen Sie den Python-Code mit Filter:

umsatz[umsatz["Land"] == "Deutschland"].groupby("Produkt")["Umsatz"].sum().nlargest(5)

Ranglisten mit Filterfunktion

Top und Flop gleichzeitig analysieren

Um die Sorgenkinder im Sortiment zu finden, drehen Sie die Logik um mit dem Parameter nsmallest():

Top 5:

umsatz.groupby("Produkt")["Umsatz"].sum().nlargest(5)

Flop 5:

umsatz.groupby("Produkt")["Umsatz"].sum().nsmallest(5)

So erkennen Sie nicht nur die stärksten, sondern auch die schwächsten Produkte auf einen Blick.

Produkte mit dem geringsten Umsatz ausgeben mit nsmallest()

Visualisierung: Das Ranking als Diagramm

Ein großer Vorteil von Python in Excel ist die schnelle Visualisierung. Mit nur wenigen Zeilen Code erstellen Sie ein Balkendiagramm Ihres Rankings:

ax = (umsatz.groupby("Produkt")["Umsatz"].sum()
      .sort_values(ascending=False)   
      .plot(kind="barh", figsize=(10, 6), color="#1f77b4"))
ax.set_title("Top-Produkte nach Umsatz")
ax.set_xlabel("Umsatz in EUR")
ax.invert_yaxis()

Mit ascending=False sorgen Sie dafür, dass nach invert_yaxis() die Produkte mit dem höchsten Umsatz oben stehen.

Diagramm (in Zelle) erstellen mit Pandas in Python

Wichtig: Stellen Sie sicher, dass matplotlib importiert ist (siehe oben), sonst erscheint kein Diagramm. Dies ist für Python in Excel in der Regel kein Problem, da matplotlib standardmäßig in Excel importiert wird.

Rechts neben dem Diagramm sehen Sie eine kleine Schaltfläche. Wenn Sie darauf klicken, dann erhalten Sie das Diagramm als eigenes Bildobjekt im Excelblatt dargestellt.

Diagramm (als Bild) erstellen mit Pandas in Python

Warum Rankings so mächtig sind

Mit Rankings können Sie:

  • Schnell Entscheidungen treffen: Wo investieren wir mehr Budget?
  • Fokus legen: 80/20-Prinzip – oft kommen 80 % des Umsatzes von nur 20 % der Produkte.
  • Management-Reports erstellen: Klare Aussagen statt riesiger Datentabellen.
  • Prioritäten sichtbar machen, ohne alle Detaildaten manuell prüfen zu müssen.

Wichtig ist dabei: Ein Ranking zeigt Prioritäten, aber nicht automatisch Ursache oder Profitabilität.

Die wichtigsten Methoden im Überblick

MethodeWann verwendenCode-Snippet
sort_valuesVollständiges Ranking aller Einträge.sort_values("Umsatz", ascending=False)
nlargest(n)Nur die Top-N-Einträge benötigt.nlargest(5)
nsmallest(n)Flop-Liste / schwächste Einträge.nsmallest(5)
rank()Rangnummer als eigene Spalte.rank(ascending=False, method="min")
cumsum()80/20-Analyse (kumulierter Anteil)["Anteil_%"].cumsum()
groupby(["…", "…"]Mehrere Gruppen gleichzeitiggroupby(["Stadt", "Produkt"])
dt.to_periodZeitreihen-Rankings (Monat/Quartal)dt.to_period("M")

Fazit

Top-Analysen gehören zu den wichtigsten Werkzeugen in der Datenanalyse. Mit Pandas können Sie diese nicht nur erstellen, sondern tiefgehende Einblicke mit Filtern, Prozentanteilen, Zeitreihen und Grafiken kombinieren.

Die zentrale Struktur für Ihr nächstes Projekt:

df.groupby("Kategorie")["Kennzahl"].sum().reset_index().sort_values("Kennzahl", ascending=False).head(5)

Vorlagen nutzen

Weitere Kapitel zum Thema