Frage

Neuling zu Analytics mit Python Also bitte sei sanft :-) Ich konnte die Antwort auf diese Frage nicht finden - Entschuldigung, wenn sie bereits an anderer Stelle in einem anderen Format beantwortet wird.

Ich habe einen Datensatz von Transaktionsdaten für ein Einzelhandelsgeschäft. Variablen zusammen mit Erklärung sind:

  • Abschnitt: Der Abschnitt des Ladens, a str;
  • prod_name: Name des Produkts, a str;
  • Quittung: Die Nummer der Rechnung, ein int;
  • Kassierer, die Anzahl der Kassierer, ein int;
  • Kosten: Die Kosten des Artikels, ein Schwimmer;
  • Datum, im Format MM/DD/YY, a str;
  • Zeit, im Format HH: mm: ss, a str;

Der Quittung hat den gleichen Wert für alle in einer einzelnen Transaktion gekauften Produkte. Daher kann sie verwendet werden, um die durchschnittliche Anzahl der in einer einzelnen Transaktion getätigten Einkäufe zu bestimmen.

Was ist der beste Weg, um das zu tun? Ich möchte im Wesentlichen verwenden groupby() So gruppieren Sie die Quittungsvariable nach eigenen identischen Ereignissen, damit ich ein Histogramm erstellen kann.

Arbeiten mit den Daten in einem Pandas -Datenframe.

BEARBEITEN:

Hier sind einige Beispieldaten mit Header (prod_name ist eigentlich eine Hex -Nummer):

 section,prod_name,receipt,cashier,cost,date,time 
 electronics,b46f23e7,102856,5,70.50,05/20/15,9:08:20 
 womenswear,74558d0d,102857,8,20.00,05/20/15,9:12:46 
 womenswear,031f36b7,102857,8,30.00,05/20/15,9:12:47 
 menswear,1d52cd9d,102858,3,65.00,05/20/15,9:08:20 

Aus diesem Beispielsatz würde ich ein Histogramm der Quittung erwarten, das zwei Ereignisse des Empfangs 102857 (da diese Person zwei Artikel in einer Transaktion gekauft hat) bzw. ein Ereignis des Empfangs 102856 bzw. des Empfangs 102858. Hinweis: Mein Datensatz ist nicht riesig, um 1 Million Zeilen.

War es hilfreich?

Lösung

Aus diesem Stichprobensatz würde ich ein Histogramm der Quittung erwarten, das zwei Ereignisse des Empfangs 102857 (da diese Person zwei Artikel in einer Transaktion gekauft hat) bzw. ein Ereignis des Eingangs von 102856 bzw. von Quittung 102858.

Dann willst du:

DF.Groupby ('Quittung'). Quittung.Count ()

receipt
102856    1
102857    2
102858    1
Name: receipt, dtype: int64

Andere Tipps

Ich stelle einige Tutorials rund um Data Wrangling zusammen. Vielleicht mein Jupyter Notebook Auf GitHub hilft. Ich denke, es ist der Schlüssel, die Zeile zu ändern:

df.groupby('male')['age'].mean()

sein:

df.groupby('reciept')['prod_name'].count()

Um nach mehreren Variablen zu gruppieren, sollte dies funktionieren:

df.groupby(['reciept','date'])['reciept'].count()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top