! Willkommen zurück zur Reihe „EDA in Public“! Dies ist Teil 2 der Serie; Wenn Sie Teil 1 noch nicht gesehen haben, lesen Sie ihn Hier. Hier ist eine Zusammenfassung dessen, was wir erobert haben.
In Teil 1 haben wir eine unordentliche Verkaufsdatei mit einer halben Million Zeilen genommen und sie in Kind gebracht. Im Einzelnen:
- Die Daten wurden zur schnelleren Verarbeitung abgetastet.
- Fehlende Werte und standardisierte Texteinträge (wie „EIRE“ bis „Irland“) behoben.
- Den ganzen Lärm herausgefiltert – Rückgaben, Stornierungen und Transaktionen zum Nullpreis.
- Wir haben unser wichtigstes Merkmal entwickelt: Die
IncomeSpalte. - Wir haben unsere ersten geschäftlichen Erkenntnisse gewonnen: die Die 10 umsatzstärksten Länder.
Wir haben jetzt einen sauberen, umsatzbereiten Pandas DataFrame, der für Erkenntnisse genutzt werden kann! Am Ende dieser Serie möchte ich die explorative Datenanalyse mit Pandas beherrschen. Wenn Sie ein Datenbegeisterter sind, können Sie gerne mitmachen.
Jetzt verlagern wir unseren Fokus auf die Bereitstellung wirklich wirkungsvoller Enterprise Intelligence für NovaShop. Unser übergeordnetes Ziel für Teil 2 ist es, die grundlegenden Fragen zu beantworten: Was Produkte sind die leistungsstärksten, Und Wann ist der beste Zeitpunkt, sie zu verkaufen?
In diesem Teil geht es um die Analyse mithilfe leistungsstarker Pandas-Aggregationstechniken (.groupby()) und Characteristic-Engineering mithilfe der Datetime-Spalte (.dt Accessor). Wir werden unsere Analyse in zwei Schlüsselbereiche unterteilen:
- Produkt-Deep-Dive: Identifizieren der Produkte, die die meisten Einheiten bewegen, im Vergleich zu denen, die das meiste Geld einbringen.
- Verkaufs-Timing (Zeitreihe): Aufdecken der Saisonalität der Verkäufe (monatliche Spitzenwerte) und der betrieblichen Traits (geschäftigste Stunde des Tages).
Kommen wir ohne weitere Umschweife zur Sache.
Laden der sauberen Daten
Um die Leistung zu verbessern, exportieren wir unseren bereinigten Datensatz und importieren ihn erneut zur Analyse
df.to_csv('online_retail_clean.csv', index=False)
Jetzt kann ich ein neues Projekt erstellen und von vorne beginnen.
Beim Laden von CSVs, die Datumsspalten enthalten, versuche ich, die zu verwenden parse_dates Argument in pd.read_csv(). Dies erspart mir den Schritt der späteren manuellen Konvertierung des Spaltentyps und stellt sicher, dass die Datumsmerkmale von Anfang an korrekt sind.
import pandas as pd
df = pd.read_csv('online_retail_clean.csv', parse_dates=('InvoiceDate'))
print(f"Efficiently loaded clear knowledge. Complete rows: {len(df)}")
Ausgabe:
Efficiently loaded clear knowledge. Complete rows: 52933
Produkt-Deep-Dive: Wer sind die wahren Geldverdiener?
Nachdem die sauberen Daten geladen sind, können wir direkt mit der Produktleistung beginnen. Produkte können auf zwei verschiedene Arten als „Bestseller“ betrachtet werden: nach Volumen (verkaufte Einheiten) oder nach Wert (generierter Umsatz).
Einblick 2: Prime 10 Bestseller (nach Menge)
Die Mengenliste verrät uns, welche Produkte beliebt und stark nachgefragt sind, auch wenn ihr Preis niedrig ist. Dies ist wichtig für die Lagerbestückung und Bestandsverwaltung.
Wir gruppieren nach dem Produkt Descriptionsummieren Sie die Amountund sortieren Sie es absteigend.
# Prime 10 Bestsellers (by Amount)
df.groupby(‘Description’)(‘Amount’).sum().sort_values(ascending=False).head(10)
Ausgabe:
Description
MEDIUM CERAMIC TOP STORAGE JAR 74698
WORLD WAR 2 GLIDERS ASSTD DESIGNS 9419
GIN + TONIC DIET METAL SIGN 5016
ASSORTED COLOURS SILK FAN 4684
JUMBO BAG RED RETROSPOT 4671
PACK OF 72 RETROSPOT CAKE CASES 3561
MINI PAINT SET VINTAGE 3285
ASSORTED COLOUR BIRD ORNAMENT 2783
BROCADE RING PURSE 2525
POPCORN HOLDER 2508
Identify: Amount, dtype: int64
Einblick 3: Die 10 wichtigsten Umsatztreiber (die wahren Geldverdiener)
Das ist es, was NovaShop wirklich wissen möchte. Diese Produkte steigern die Rentabilität. Sie verkaufen möglicherweise nicht so viele Einheiten wie die Artikel in der vorherigen Liste, aber ihr höherer Preis oder größere Großbestellungen machen sie weitaus wertvoller.
Wir folgen dem gleichen Prozess, aber dieses Mal aggregieren wir auf der Income Spalte, die wir in Teil 1 entwickelt haben.
# Prime 10 Income Drivers (The True Cash-Makers)
df.groupby(‘Description’)(‘Income’).sum().sort_values(ascending=False).head(10)
Ausgabe:
Description
MEDIUM CERAMIC TOP STORAGE JAR 77785.74
DOTCOM POSTAGE 18456.13
REGENCY CAKESTAND 3 TIER 15093.38
AMAZON FEE 13541.33
PARTY BUNTING 9491.60
GIN + TONIC DIET METAL SIGN 9480.51
JUMBO BAG RED RETROSPOT 8996.65
Guide 8966.96
CHILLI LIGHTS 8395.20
POSTAGE 7194.51
Identify: Income, dtype: float64
Diskussion: Was diese Pay attention NovaShop sagen
Hier zeigt sich die Stärke von EDA wirklich, denn diese beiden Pay attention erzählen eine ganz unterschiedliche Geschichte:
- Das All-Star-Produkt: Der „MITTLERES AUFBEWAHRUNGSGLAS AUS KERAMIK“ ist eindeutig der Gewinner und dominiert beide Pay attention mit großem Abstand. Es ist ein hohes Volumen und ein hoher Wert. Dieser Artikel sollte der Hauptschwerpunkt von NovaShop für Inventar, Advertising und Growth sein.
- Eine überraschende Einnahmequelle: Beim Durchsuchen der Daten fielen mir Elemente wie auf „DOTCOM-PORTO“, „AMAZON-GEBÜHR“, „Handbuch“, Und „PORTO.“ Dabei handelt es sich nicht um echte Produkte, sondern um Servicegebühren und manuelle Anpassungen. Doch zusammen bringen sie quick ein 48.000 £ an Einnahmen. NovaShop sollte noch einmal prüfen, ob diese Gebühren in seinem Bruttogewinn berücksichtigt werden. Es ist leicht zu übersehen, aber es könnte eine stille und sinnvolle Einnahmequelle sein, die sich im Verborgenen versteckt.
- Die hochwertigen physischen Güter: Artikel wie die „REGENCY KUCHENSTAND, 3-STOCKIG“ Und „CHILLI-LICHTER“ Erstellen Sie die Umsatzliste, aber nicht die Mengenliste. Dies zeigt uns, dass es sich um hochpreisige Artikel handelt, die erheblich zum gesamten Cashflow beitragen und gezielte Marketingmaßnahmen wert sind.
Wir haben jetzt ein vollständiges Bild davon, was NovaShop am besten verkauft. Zeit herauszufinden, wann!
Vorbereitung auf die Zeitreihenanalyse: Characteristic Engineering
Wir wissen, was sich intestine verkauft hat. Lassen Sie uns nun herausfinden, wann der Umsatz seinen Höhepunkt erreicht. Unser Ziel ist es, das aufzubrechen InvoiceDate Spalte in Komponenten, die es uns ermöglichen, Verkäufe nach Jahr, Monat, Tag und sogar Stunde zu gruppieren und zu analysieren.
Dies ist ein klassischer Characteristic-Engineering-Schritt. Da wir uns bereits vergewissert haben InvoiceDate ist ein richtiger Pandas datetime Objekt (Danke an parse_dates in unserem Ladeschritt!), können wir das äußerst nützlich nutzen .dt Zugriffsberechtigter.
Extrahieren von Zeitkomponenten
Um die Saisonalität (monatlich) und die betriebliche Effizienz (stündlich) zu verstehen, erstellen wir vier neue Spalten.
- Jahr – Für langfristige Vergleiche
- Monat – Zur Identifizierung saisonaler Spitzen (z. B. Ansturm im 4. Quartal).
- DayName – Um den geschäftigsten Tag der Woche zu finden.
- Stunde – Zur Ermittlung der Spitzenbetriebszeiten.
Lassen Sie uns diese Spalten generieren:
print(“n — — Time Sequence Characteristic Extraction — -”)
# Extract 12 months, Month, DayName, and Hour from the InvoiceDate column
df(‘12 months’) = df(‘InvoiceDate’).dt.12 months
df(‘Month’) = df(‘InvoiceDate’).dt.month
df(‘DayName’) = df(‘InvoiceDate’).dt.day_name()
df(‘Hour’) = df(‘InvoiceDate’).dt.hour
print(“New time options added: 12 months, Month, DayName, Hour.”)
print(df((‘InvoiceDate’, ‘12 months’, ‘Month’, ‘DayName’, ‘Hour’)).head())
Ausgabe:
--- Time Sequence Characteristic Extraction ---
New time options added: 12 months, Month, DayName, Hour.
InvoiceDate 12 months Month DayName Hour
0 2011-06-01 12:05:00 2011 6 Wednesday 12
1 2011-05-27 17:14:00 2011 5 Friday 17
2 2011-04-21 17:05:00 2011 4 Thursday 17
3 2011-11-16 10:39:00 2011 11 Wednesday 10
4 2011-03-10 08:40:00 2011 3 Thursday 8
Perfekt! Im nächsten Abschnitt können wir direkt mit der Kartierung der Verkaufsmuster fortfahren.
Kartierung von Verkaufsmustern (Zeitreiheneinblicke)
Da unsere Zeitfunktionen bereit sind, können wir nun unsere Fragen dazu stellen und beantworten, wann Verkäufe stattfinden. Wir fangen groß an (monatliche Traits) und gehen im kleinen Schritt weiter (stündliche Traits).
Einblick 4: Verkaufstrends nach Monat (Saisonalität)
Für die Erkennung ist die monatliche Aggregation von entscheidender Bedeutung Saisonalität– das vorhersehbare Umsatzmuster, das sich jedes Jahr wiederholt. Diese Daten werden für Finanzprognosen und die Planung der Lagerbestände für die Hochsaison verwendet.
Wir werden nach dem gruppieren Month Spalte und berechnen Sie jeweils den Gesamtumsatz.
print(“n — — Perception 4: Gross sales Traits by Month (Seasonality) — -”)
# Group by month and sum the income
monthly_revenue = df.groupby(‘Month’)(‘Income’).sum().sort_values(ascending=False)
# Print the outcomes, which ought to present the seasonal peaks
print(monthly_revenue)
Ausgabe:
--- Perception 4: Gross sales Traits by Month (Seasonality) ---
Month
11 143576.360
1 142013.420
12 133178.980
10 119533.540
9 103929.420
3 72968.270
8 71302.890
5 70424.510
6 68722.520
7 68713.831
4 51882.010
2 50178.730
Identify: Income, dtype: float64
Interpretation: Die gewaltige This autumn- und Januar-Überraschung
Die Daten zeigen deutlich, dass die Umsätze von NovaShop stark zum Jahresende tendieren, was den typischen Einzelhandel bestätigt This autumn (Oktober, November, Dezember) Ansturm .
- Hauptsaison: Der November ist mit geringem Abstand der Spitzenmonat, dicht gefolgt vom Dezember. Jetzt ist es an der Zeit, sich einzudecken Mittelgroße Vorratsdosen aus Keramik mit Deckel und gezielte Werbung schalten.
- Der Januar-Anstieg: Der zweithöchste Monat ist der Januar! Das ist ein hervorragender Einblick für NovaShop. Es deutet darauf hin, dass Kunden möglicherweise Weihnachtsgeschenkgeld verwenden oder die Sonderangebote nach den Feiertagen nutzen. Dieser Zeitraum sollte nicht als Einbruch betrachtet werden, sondern als sekundäre Probability für großvolumige Verkäufe.
- Nebensaison:Februar und April sind die leistungsschwächsten Monate, was NovaShop dabei hilft, in diesen Zeiträumen geringere Private- und Marketingbudgets einzuplanen.
Einblick 5: Verkaufstrends nach Wochentag und Stunde (Betriebsplanung)
Während es bei der Saisonalität um Finanzen und Lagerbestände geht, geht es um tägliche und stündliche Traits Operationen. NovaShop kann damit Lagerpersonal planen, Werbeausgaben optimieren und E-Mail-Kampagnen zeitlich planen.
Wir führen hier zwei separate Aggregationen durch: eine für den Wochentag und eine für die Stunde des Tages.
Umsatz nach Wochentag
# 1. Gross sales by Day of Week
daily_revenue = df.groupby(‘DayName’)(‘Income’).sum()
print(“n — — Income by Day of Week — -”)
print(daily_revenue)
Ausgabe:
--- Income by Day of Week ---
DayName
Friday 163861.320
Monday 171026.230
Sunday 83125.890
Thursday 219342.980
Tuesday 282796.741
Wednesday 176271.320
Identify: Income, dtype: float64
Interpretation: Dienstag ist der Tag der Macht
Die Daten zeigen ein klares und umsetzbares Muster für die Arbeitswoche:
- Spitzenverkäufe : Dienstag dominiert die Woche absolut und generiert quick 30 % mehr Umsatz als der nächstgrößte Tag, der Donnerstag. Dies ist ein idealer Tag für die Einführung neuer Produkte oder die Durchführung wirkungsvoller Flash-Gross sales.
- Tage des Einbruchs: Es überrascht nicht, dass die Verkäufe dramatisch zurückgehen Sonntag. NovaShop könnte dies als einen Tag mit niedriger Priorität für E-Mail-Advertising oder die Personalbesetzung im Kundenservice betrachten.
- Vermisster Tag: Der Datensatz enthält keine Transaktionen für Samstag in unserem Beispiel (oder vielleicht der vollständige Satz, der in B2B-Datensätzen üblich ist).
Umsatz nach Tagesstunden
# 2. Gross sales by Hour of Day
hourly_revenue = df.groupby(‘Hour’)(‘Income’).sum().sort_index()
print(“n — — Income by Hour of Day — -”)
print(hourly_revenue)
Ausgabe:
--- Income by Hour of Day ---
Hour
7 2830.910
8 26597.800
9 76768.750
10 209809.971
11 115233.600
12 142474.460
13 130348.290
14 119241.520
15 145178.980
16 70620.550
17 36148.030
18 14022.790
19 4397.130
20 2751.700
Interpretation: Der Late-Morning-Growth
Die stündlichen Daten weisen direkt auf den betrieblichen Bedarf hin:
- Massiver Gipfel: Um 10 Uhr morgens (Stunde 10) explodieren die Verkäufe und generieren quick das Doppelte des Umsatzes der nächsten Stunden. Dies ist der optimale Zeitpunkt für NovaShop, E-Mail-Advertising- und Social-Media-Kampagnen zu starten.
- Nachhaltige Aktivität: Von 11:00 bis 15:00 Uhr bleiben die Verkäufe hoch, was auf ein starkes Einkaufsfenster am Mittag und nach der Mittagszeit schließen lässt.
- Ende des Tages:Nach 16:00 Uhr lässt die Aktivität stark nach, und am Abend (ab 19:00 Uhr) werden nur noch sehr geringe Einnahmen erzielt. Dies deutet darauf hin, dass der Kundenstamm von NovaShop hauptsächlich am Schreibtisch tätig ist und während der üblichen Arbeitszeiten einkauft.
Fazit: Die Voraussetzungen für die Kundensegmentierung schaffen
Wir haben die Hochleistungs-EDA offiziell abgeschlossen! Wir wissen, was sich am besten verkauft (das Keramikglas und die Gebühren), wo die Verkäufe am stärksten sind (Großbritannien) und wann die Verkaufsspitzen auftreten (4. Quartal, dienstags und 10 Uhr).
Allerdings fehlt uns noch das wertvollste Puzzleteil: Die WHO. Die besten Unternehmen wissen nicht nur, was sich verkauft; Sie wissen, wer ihre wertvollsten Kunden sind und wie sie sie halten können.
In Teil 3 werden wir uns mit der fortschrittlichsten Analysetechnik dieser Serie befassen: RFM (Recency, Frequency, Financial)-Kundensegmentierung. Dies wird es uns ermöglichen, Kunden in Stufen wie „Champions“, „Treuekunden“ und „Gefährdete Kunden“ einzuteilen, was NovaShop eine echte Roadmap für personalisiertes Advertising bietet.
Ich hoffe, Sie fanden diesen Artikel hilfreich. Sagen Sie mir gerne auf einer dieser Plattformen Hallo. Ich freue mich sehr über Ihr Suggestions.
