Cover Image
Trutz Fries

Amazon Suchbegriffe mit Jupyter Notebooks und Pandas analysieren

02.04.2020 • von Trutz Fries
  1. Import der Daten mittels Pandas
  2. Analyse der Daten
  3. Die Suchbegriffe durchsuchen
  4. Häufigkeit der Amazon Suchbegriffe
  5. Saisonale Suchbegriffe

Amazon stellt in ARApremium bzw. Brand Analytics Suchbegriff-Berichte zur Verfügung, um das Suchverhalten der Kunden zu analysieren.

Wir wollten wissen, welche Begriffe übergreifend am häufigsten gesucht werden. Da man mit Excel hier schnell an seine Grenzen kommt, haben wir ein Jupyter Notebook gebaut, mit der diese Analyse mit wenigen Zeilen Code zu schaffen ist.

Import der Daten mittels Pandas

Zu Beginn muss man die Daten als CSV Datei herunterladen, um diese später in seinem Notebook einbinden zu können.

Das Notebook sieht dann so aus:

# Pandas importieren
from __future__ import print_function
import pandas as pd
import glob
pd.__version__

# Alle Dateien in ein Array laden
all_files = glob.glob("/verzeichnis-zu-den-dateien/Amazon*.csv")

# Einlesen aller CSV Dateien, die sich in dem Array all_files befinden
# Das Leerzeichen in "Suchfrequenz-Rang " ist wichtig!
df = pd.concat((pd.read_csv(file, decimal=",", thousands=".", usecols=["Suchbegriff", "Suchfrequenz-Rang "], engine="python", error_bad_lines=True, encoding='utf-8', skiprows=1,  sep=",") for file in all_files))

# Aggregieren der Daten
df4 = df.groupby('Suchbegriff')['Suchfrequenz-Rang '].agg(['mean','count','std']).sort_values(by=['mean'])

# Konvertieren der Spalten count und mean zu ganzen Zahlen
df4 = df4.astype({"count": int, "mean": int})

# Speichern als CSV Datei
df4.to_csv( "Average-Rank-SearchtermsWithCount.csv", encoding='utf-8-sig')

Analyse der Daten

Je nachdem wie viele Dateien man auf diese Weise kombiniert hat, bekommt man dann eine Datei mit > 1 Millionen Keywords und sieht für jedes Keyword, welchen Rang dieses im Durchschnitt hatte und wie häufig es in allen Dateien vorkam.

Im folgenden Beispiel haben wir 24 dieser Berichte analysiert und hatten am Ende ca. 1,2 Millionen Keywords in der Tabelle. Hier die ersten 50.

Suchbegriffmeancountstd
bluetooth kopfhörer5254
nintendo switch6254
kopfhörer10255
airpods132514
smartwatch142519
ps4 spiele16257
harry potter182513
lego19259
laptop20259
nintendo switch spiele262512
staubsauger272517
alexa292516
paw patrol292511
tablet332513
star wars342526
wasserkocher352520
bibi und tina372527
ps4432518
rucksack damen472565
ps4 controller472517
usb stick482530
powerbank492595
schlüsselanhänger522535
kaffeevollautomat562545
lego technik562541
sodastream602532
marvel602536
smartphone622536
kaffeemaschine632528
pokemon652521
bluetooth lautsprecher662540
playmobil682540
handy722527
schreibtisch732536
waschmaschine752539
iphone xr hülle752555
iphone782526
barbie822533
bilderrahmen842526
fernseher872547
gaming pc912530
trinkflasche9125109
bibi blocksberg942597
teppich972551
switch spiele972544
greys anatomy972558
ipad982553
led strip992561
shisha1012562
gaming stuhl1022542

Die Suchbegriffe durchsuchen

Diese Liste kann man jetzt z.B. bei der Listing-Optimierung nutzen, um Keywords relativ zueinander einzuschätzen. Wird also "Portmonee" oder "Brieftasche" häufiger gesucht?

Mit folgendem Befehl lassen sich die Suchbegriffe durchsuchen. In diesem Beispiel suchen wir nach allen Suchbegriffen, in denen das Wort "gardena" vorkommt:

df4[df4.index.str.contains('gardena')].head(20)
Suchbegriffmeancountstd
gardena3486253150.23
gardena schlauch216212516836.7
gardena schlauchtrommel227382515791.4
gardena mähroboter249342512274.6
gardena kupplung274622530896.6
gardena bewässerungssystem319942529484.3
gardena gartenschere337052516405
gardena schlauchverbinder608542546403.2
gardena schlauchwagen615072547797.7
mähroboter gardena616122534583.8
gardena aquazoom62400950114.7
gardena bewaesserung690711nan
gardena spritze743072553239.9
gardena stiel749732540259
gardena combisystem827162570433.5
gardena rechen837092576207.2
gardena bewässerungscomputer847962573591.6
gardena zeitschaltuhr86014977920
gardena sileno866392545248.6
gartenschere gardena870252547870.6

Noch mächtiger wird die Suche, wenn man eine sog. "Regular Expression" (RegEx) zur Suche nutzt. Hier gibt man nicht einen konkreten Text vor, sondern ein sog. Suchmuster. Dies erlaubt es uns, z.B. nach unterschiedlichen Schreibweisen zu suchen. Der folgende Befehlt findet unterschiedliche Schreibweisen des Wortes "Yogamatte":

df4[df4.index.str.contains('[yj]oga.?matte')].head(20)
Suchbegriffmeancountstd
yogamatte33825161.047
yoga matte238925820.243
yogamatte rutschfest9922253469.39
jogamatte10261253377.84
yogamatte kork235302511257.2
yogamatte naturkautschuk27743255939.38
jade yogamatte468172512736.8
yogamatten567152522945.4
lotuscrafts yogamatte633282519403.3
manduka yogamatte636532518263.3
yogistar yogamatte681122513675
yoga matte rutschfest703261nan
yogamatte tasche807852513150.2
reise yogamatte839952531255.2
joga matten893622524908.6
yogamatte schurwolle895492449844.2
yogamatte reebok1078611nan
liforme yogamatte1101312520752.5
reebok yogamatte1103631nan
yoga matte rutschfest dünn1129452459256.9

Das Suchmuster [yj]oga.?matte' ist dabei wie folgt zu interpretieren:

[yj] = y oder j

.? = mit oder ohne Leerzeichen

Wir können jetzt auch unsere Frage von zu Beginn beantworten. Wenn jemand ein neues Portemonnaie sucht, welche Schreibweise wird am häufigsten gesucht?

df4[df4.index.str.contains('brieftasche|port.*monee|port.*monnaie', regex=True)].head(20)
Suchbegriffmeancountstd
portemonnaie damen35425236.108
portmonee damen244425635.93
portemonnaie herren2482252759.01
portmonee herren316325925.913
portemonnaie damen klein7463252688.67
herren portemonnaie7927252787.5
portemonnaie8195253790.73
damen portemonnaie9238253595.85
brieftasche herren10500253545.77
portmonee15116255390.57
portemonnaie damen gross16263253797.22
karten portemonnaie16668253642.58
brieftasche20851259823.33
portmonee damen klein22647257458.06
brieftasche damen26560257834.45
portemonnaie damen leder266112510856.4
tommy hilfiger portemonnaie herren27305258887.91
kellnerportemonnaie278892517295.4
damen portemonnaie groß34549259542.01
mini portemonnaie herren422442521701.3

Häufigkeit der Amazon Suchbegriffe

Interessant ist auch eine Analyse nach Häufigkeit:

Histogramm Suchbegriffe Amazon

Hier sieht man, dass es viele sog. "one-hit-wonder" in den Daten gibt, also Suchbegriffe, die nur einmal in einer der Dateien auftauchen.

Schauen wir uns die ersten 20 mal an:

Suchbegriffmeancountstd
cyber monday fashion sale1631nan
lazy leaf1821nan
amazon on2901nan
schneepflug ferngesteuert5501nan
led kerzen luminicious6471nan
lazy leaf blumentopf8101nan
toilettenpapier, 3 lagig, 200 blatt8731nan
1-cent produkte9501nan
desinfektionsmittel amazon9761nan
bunions10041nan
wuya iphone kabel10291nan
wuya lightning kabel11611nan
wuya iphone ladekabel11801nan
cb lash13781nan
pursources urea 40% foot cream 4 oz - best callus remover - moisturizes14361nan
dream pairs stiefel14401nan
iphone 6s zertifiziert16681nan
glitzer käfer hugo holunderblüte16811nan
toilettepapier18031nan

Da diese Analyse zur Zeit des Corona-Virus entstanden ist, ist es nicht verwunderlich, dass hier auch Suchanfragen wie "toilettenpapier, 3 lagig, 200 blatt" auftauchen.

Saisonale Suchbegriffe

Die dritte oben gezeigte Spalte "std" zeigt die Standardabweichung. Je höher diese Zahl ist, desto stärker schwankt der Artikel über die Zeit. Oder in anderen Worten, die Nachfrage ist sehr unterschiedlich je nach Zeitraum.

Mit folgendem Befehl erhalten wir die 50 Suchbegriffe, die in allen CSV-Dateien enthalten waren und die größte Standardabweichung haben:

# Zeige die Top 50 Suchbegriffe, die sehr saisonal sind
df4.loc[df4['count'] > 24].sort_values(by=['std'], ascending=False).round().head(50)
Suchbegriffmeancountstd
gartenmöbel rattan13918425167159
pool pumpe17765925164494
bachlaufpumpe19022325163726
rattan gartenmöbel12009225161254
dirndl mädchen18481825156153
superfit sandalen junge15679025154468
gasgrill 2 brenner21055225147982
rasiermesser set herren21171625147492
gartentisch ausziehbar10734725146850
gardena sprinklersystem12509125146624
bodyglide22059725145493
staudenhalter15583325145325
kinderhelm 2 jahre mädchen24160825144926
fahrrad trikot herren20415125144730
flash forward18698925144543
dulcolax dragees17822625144403
pflanzkübel holz12620125144161
gartentisch rund14337725144013
olaplex 4 und 519825625143025
mückenstift18919825142321
pfostenkappen 9x915581125142319
abwassertank wohnwagen18029625142278
sneaker schuhe damen13446725141915
traillaufschuhe herren16760625141755
aqua kem blue19065125141391
puma schuhe kinder14530225141385
merjungfrauen flossen für kinder11063325141235
zelt 6 person16170625141204
stihl motorsense17440225141132
sandkiste12137825141089
fahrrad flickzeug set15601425141009
pantoletten damen mit absatz17638425140303
wandbrunnen20208125140287
bauchtasche damen adidas17126925139889
maurerwinkel19049225139651
glasbehälter mit deckel set17970525139060
malcom mittendrin20746625138776
pool rund16047825138643
fatboy hängematte17243725138641
sprunggelenk bandage16025925138526
eisensulfat20123125138178
now apocalypse26580125138165
schutzblech 26 zoll19999725138128
bella and the bulldogs staffel 115208625138059
gartenschlauch gardena16931125137692
inliner rollen21007825137606
fliegenhaube pferde22007025136842
windschutz gaskocher16833125136827
ralph lauren herren t shirt14939525136783
gymondo16855525136419

Nicht überraschend finden sich hier viele Artikel für den Garten (Sommer).

Dieser Artikel kann nur einen Überblick geben, was alles mit Jupyter Notebooks möglich ist. Einen weitere Artikel zu diesem Thema haben wir auf unserm Agentur-Blog veröffentlich. Hier geht es um die Analyse von Amazon Daten mit Hilfe von Jupyter Notebooks.

Weitere Artikel, die Ihnen erklären, wie Sie unter anderem mit Pandas arbeiten:

Brauchen Sie mehr Übersicht auf Amazon?
14 Tage kostenlos testen
Haben Sie noch Fragen? Rufen Sie uns an!
Tel. 0221-29 19 12 32 | info@amalytix.com