2017-06-22 3 views
0

Ich lerne Python und im Moment spiele ich mit einigen Verkaufsdaten. Die Daten sind im CSV-Format und zeigen wöchentliche Verkäufe an. Ich habe unten Spalten mit einigen Beispieldaten wie folgt:pandas Gruppe Termine vierteljährlich und Summe Umsatz Spalte

store# dept# dates  weeklysales 
    1  1 01/01/2005  50000 
    1  1 08/01/2005  120000 
    1  1 15/01/2005  75000 
    1  1 22/01/2005  25000 
    1  1 29/01/2005  18000 
    1  2 01/01/2005  15000 
    1  2 08/01/2005  12000 
    1  2 15/01/2005  75000 
    1  2 22/01/2005  35000 
    1  2 29/01/2005  28000 
    1  1 01/02/2005  50000 
    1  1 08/02/2005  120000 
    1  1 15/02/2005  75000 
    1  1 22/03/2005  25000 
    1  1 29/03/2005  18000 

ich die weeklysales auf monatlicher Basis in jeder Abteilung hinzufügen möchten, und wollen die Datensätze angezeigt werden soll.

Ich habe versucht, von unten Links Funktion in Pandas zu verwenden groupby:

how to convert monthly data to quarterly in pandas

Pandas group by and sum two columns

Pandas group-by and sum

Aber was in der oben passiert, dass ich Summe aller bekommen Spalten und erhalten die folgende Ausgabe durch Hinzufügen der Speicher-und Abt-Nummern als auch:

store# dept# dates  weeklysales 
    4  3  01/2005  28800 
    4  1  01/2005  165000 
    4  3  02/2005  245000 
    4  3  03/2005  43000 

Ich will nicht Nummern speichern und dept hinzufügen, aber möchte nur von jedem Monat die weeklysales Figur hinzufügen und wollen die Anzeige wie:

store# dept# dates  weeklysales 
    1  1  01/2005  28800 
    1  2  01/2005  165000 
    1  1  02/2005  245000 
    1  1  03/2005  43000 

Wird dankbar sein, wenn ich eine Lösung für das bekommen .

Cheers,

Antwort

1

Ist das, was Sie nach?

Konvertieren Sie Datumsangaben in das Monats-/Jahresformat und gruppieren Sie dann die Summe und den Umsatz.

(df.assign(dates=df.dates.dt.strftime('%m/%Y')) 
    .groupby(['store#','dept#','dates']) 
    .sum() 
    .reset_index() 
) 
Out[243]: 
    store# dept# dates weeklysales 
0  1  1 01/2005  288000 
1  1  1 02/2005  245000 
2  1  1 03/2005  43000 
3  1  2 01/2005  165000 
+0

Vielen Dank Allen. Das wollte ich erreichen – Baig