我有一個(gè)df
遵循這個(gè)結(jié)構(gòu):
store day type sales orders
amazon 2021-10-10 web 10 1
amazon 2021-10-10 retail 500 50
facebook 2021-10-10 retail 300 50
facebook 2021-09-05 retail 10 50
apple 2021-09-01 web 5 1
uber 2021-08-01 web 50 1
uber 2021-08-01 retail 60 1
...
我正在嘗試一個(gè)df_res
每周sales & orders
次的store, day & type
,因此輸出結(jié)果如下所示:
day type sales_amazon orders_amazon sales_facebook orders_facebook sales_apple orders_apple sales_uber orders_uber
2021-08-01 web 0 0 0 0 0 0 50 1
2021-08-01 rtail 0 0 0 0 0 0 60 1
2021-10-10 web 10 1 0 0 0 0 0 0
2021-10-10 retail 500 50 300 50 0 0 0 0
...
I tried:
# main df to be joined on
df_res = df[df.store.isin(['amazon'])].groupby(['store','type', pd.Grouper(key = 'day', freq = 'W-MON',
label = 'right')])[['store','day','orders','sales','type']].sum().reset_index()
# merging on main df each store df
for branch in ['facebook', 'apple', 'apple', 'uber']:
df_res = df_res.merge(df[df.store.isin([branch])].groupby(['store','type', pd.Grouper(key = 'day', freq = 'W-MON',
label = 'right')])[['store','day','orders','sales','type']].sum().reset_index(),
on =['day','type'], suffixes= [f'_{branch}', f'_{branch}'], how = 'outer')
但這并沒有產(chǎn)生我想要的結(jié)構(gòu),我嘗試使用join
,但這會(huì)拋出一個(gè)不同的長(zhǎng)度錯(cuò)誤,因?yàn)橛袝r(shí)給定商店的特定date & type
組合沒有銷售。
您可以
pivot
并重新編寫多索引:output: