, was ich habe, so weit ist ein normaler Transaktionsdatenrahmen mit den folgenden Spalten verbinden.Wie Multi-Level-Datenrahmen auf Werte in Single-Level-Datenrahmen
Damit habe ich eine Zusammenfassung Datenrahmen:
store_item_years = df.groupby(
['store','item','year'])['sales'].agg(
[np.sum, np.mean, np.std, np.median, np.min, np.max]).unstack(
fill_value=0)
die letzten Ergebnisse in einem Multi-Index mit 2 Ebenen, wie folgt aus:
sum mean
year | 2015 | 2016 | 2017 | 2015 | 2016 | 2017 | ...
store | item sum1 ... ... mean1 mean2 ... | ...
Nun möchte Ich mag die zusammenfassende Tabelle wieder auf den Transaktions einer verschmelzen:
store | item | year | month | day | sales | + | sum+'by'+year | mean+'by'+year
2015 sum1 mean1
2016 sum2 mean2
2017 ... ...
ich mit dem folgende zu fusionieren versuchen:
df = pd.merge(df, store_item_years,
left_on=['store', 'item', 'year'],
right_on=['store', 'item', 'year'],
how='left')
, die in den folgenden Fehlern führen :
KeyError: 'year'
Irgendwelche Ideen? Ich bin gerade dabei, mich um groupby zu kümmern. Ich habe PivotTable noch nicht untersucht.
Bitte beachten Sie, dass das Problem vereinfacht ist. Die Anzahl der store_item-Kombinationen beträgt 200 + K und andere Groupbys mit mehr als 300 Spalten. Aber immer das gleiche Prinzip.
Vielen Dank im Voraus.
Dank! Ja, ich habe es gerade auch bemerkt. Ich werde deine Antwort akzeptieren, da du mich zu mir geschlagen hast :) – user319436