Ich habe einen Pivot-Pandas-Datenrahmen (Umsatz nach Region), der aus einem anderen Pandas-Datenrahmen (Umsatz nach Geschäft) mit der Pivot_table-Methode erstellt wurde.aggregierte Daten nach Quartal
Als Beispiel:
df = pd.DataFrame(
{'store':['A','B','C','D','E']*7,
'region':['NW','NW','SW','NE','NE']*7,
'date':['2017-03-30']*5+['2017-04-05']*5+['2017-04-07']*5+['2017-04-12']*5+['2017-04-13']*5+['2017-04-17']*5+['2017-04-20']*5,
'sales':[30,1,133,9,1,30,3,135,9,11,30,1,140,15,15,25,10,137,9,3,29,10,137,9,11,30,19,145,20,10,30,8,141,25,25]
})
df['date'] = pd.to_datetime(df['date'])
df_sales = df.pivot_table(index = ['region'], columns = ['date'], aggfunc = [np.sum], margins = True)
df_sales = df_sales.ix[:,range(0, df_sales.shape[1]-1)]
Mein Ziel ist die folgende zum Verkaufsdatenrahmen zu tun, df_sales.
Erstellen Sie einen neuen Datenrahmen, der die Umsätze nach Quartal zusammenfasst. Ich könnte den ursprünglichen Datenrahmen df oder den sales_df verwenden.
Ab Quartal haben wir hier nur nur zwei Viertel (USA fiscal calendar year) so den Quartalsrahmen aggregierten Daten aussehen würde:
2017Q1 2017Q2
10 27
31 37.5
133 139.17
Ich nehme den Durchschnitt für alle Tage in Q1 und Q2 gleich für. So ist zum Beispiel für die Region North East, 'NE'
, das Q1 der Durchschnitt von nur einem Tag 2017-03-30, dh 10, und für das Q2 ist der Durchschnitt über 2017-04-05 bis 2017-04-20 dh
(20+30+12+20+30+50)/6=27
Irgendwelche Vorschläge?
ZUSÄTZLICHE HINWEIS: Ich würde idealerweise die Viertelaggregationen auf der geschwenkten Tabelle df_sales tun, da es ein viel kleinerer Datenrahmen ist, im Speicher zu behalten. Die aktuelle Lösung tut es auf dem ursprünglichen df, aber ich suche immer noch eine Möglichkeit, es im df_sales Dataframe zu tun.
Könnten Sie eine kleine Probe reproduzierbar Datensatz erstellen (Quelle DF - 'df') und gewünschten Daten eingestellt? – MaxU
@MaxU sicher, lassen Sie mich ein einfaches Beispiel erstellen – Dnaiel
@MaxU ok, ich erstelle ein vollständiges Beispiel für Sie. – Dnaiel