2017-03-06 4 views
0

Ich habe einen Pandas Datenrahmen, die wie folgt aussieht:Python Pandas groupby Monat Tag Jahr Woche

Day Month Year  Date Week Data1 Data2 
    1 January 2016 01-01-2016 1 15 22 
    2 January 2016 01-02-2016 1 16 26 
12 January 2016 01-12-2016 2 18 29 
    8 February 2016 02-08-2016 2  9 17 

ich die Woche Spalte manuell hinzugefügt und sie sind vom Typ int. Ich möchte die Daten nach Woche, Monat, Jahr gruppieren, dh: Januar 2016 Woche 1, Januar 2016 Woche 2, Februar 2016 Woche 2. Das Problem ist, dass das Ergebnis ein Datenrahmen sein soll, wobei Daten1 die Summe der Spalten und Daten2 ist ist der Mittelwert der Spalten.

Vielen Dank für die Hilfe.

Antwort

0

Ich denke, Sie können groupby gefolgt von agg für Ihre gewünschten Aggregationen verwenden.

df.groupby(['Year', 'Month', 'Week']).agg({'Data1':'sum', 'Data2':'mean'}) 

Demo

>>> df.groupby(['Year', 'Month', 'Week']).agg({'Data1':'sum', 'Data2':'mean'}) 

        Data1 Data2 
Year Month Week    
2016 February 2   9  17 
    January 1  31  24 
       2  18  29 
Verwandte Themen