Wie implementieren Sie genaue Zählungen oder Beträge, wenn Sie unterschiedliche Anzahl von Wochentagen haben?
Frage
Ich habe einen Datensatz von Transaktionsdaten für ein Einzelhandelsgeschäft. Ich benutze Pandas und möchte die Einnahmen bis zum Wochentag analysieren, aber es gibt ungleiche Tage im Datensatz (dh ein zusätzliches Wochenende). Ich habe benutzt df.dt.dayofweek
Um einen Ganzzahlwert für den Wochentag zu erstellen, und die Daten nach diesem Ganzzahlwert mithilfe der Gründung gruppiert df.groupby(["Day_int",]).sum()
Daher habe ich am Ende eine "Gesamt" -Spalne Tage Samstag und Sonntag. Ist der beste Weg, um den Datenrahmen zu durchlaufen oder ist es besser
Hier ist der DF, mit dem ich arbeite (die meisten Säulenwerte sind unsinnig, nur Gesamt ist von Interesse). Day_int ist die variable gruppe_by und sollte niedriger erscheinen als die anderen Spalten.
Day_int Section Prod_name Cashier Date Time Receipt Total
0 ..................................................91341
1 ..................................................82262
2 ..................................................84145
3 ..................................................90115
4 ..................................................115497
5 ..................................................151971
6 ..................................................109210
Lösung
Ich würde eine Kolumne hinzufügen, die 3 ist, wenn es sich um einen Wochentag und eine 4 handelt, wenn sie kein Antrag verwendet, so etwas wie folgt:
df['divide_by'] = df.apply(lambda x: 3 if x['Day_int']<5 else 4, axis=1)
Angenommen, die Tage sind Montag 0 bis Sonntag. 6. Dann können Sie die Kolumne wie folgt hinzufügen:
df['adj_total'] = df.apply(lambda x: x['Total']/x['divide_by'], axis=1)
Dann können Sie die Spalte Divide_by entfernen und das Ergebnis haben