我知道已經(jīng)提出了一個與此類似的問題,但是當(dāng)您只有一個分類變量時,該解決方案有效。我有其中的兩個,而且MultiIndexes對我來說一直很難與之合作。問題是,我有以下數(shù)據(jù)框: Date Product eCommerce Sales12-10-2018 A 1 1012-12-2018 A 0 712-13-2018 A 1 412-15-2018 A 1 212-15-2018 A 0 212-11-2018 B 1 812-13-2018 B 1 6所以我需要知道每個日期有和沒有電子商務(wù)的銷售額,并填寫沒有出現(xiàn)零銷售額的日期。我想要的輸出是: Date Product eCommerce Sales12-10-2018 A 1 1012-11-2018 A 1 012-12-2018 A 1 012-13-2018 A 1 412-14-2018 A 1 012-15-2018 A 1 212-12-2018 A 0 712-13-2018 A 0 012-14-2018 A 0 012-15-2018 A 0 212-11-2018 B 1 812-12-2018 B 1 012-13-2018 B 1 6注意:它只是一個 DataFrame,我只是添加了空格來區(qū)分索引。因此,在原始數(shù)據(jù)幀中,產(chǎn)品 A 的電子商務(wù)銷售缺少 12-11 和 12-14,產(chǎn)品 A 的非電子商務(wù)銷售缺少 12-13 和 12-14,產(chǎn)品 B 的電子商務(wù)銷售缺少 12-12問題是,我設(shè)法通過一個非常低效的循環(huán)實現(xiàn)了我想要的,這個循環(huán)需要大約 25 分鐘才能運行:df_full= pd.DataFrame(columns=df.columns)for sku in df['Product'].unique(): aux=df.loc[df['Product']==sku] dates= pd.DataFrame(pd.date_range(start=aux.Date.min(), end=aux.Date.max(),freq='D'),columns=['Date']) df3 = df.loc[df['id_prod']==sku].merge(dates, how='outer',left_on='Date', right_on='Date').sort_values(by='Date') df3.fillna(method='ffill',inplace=True) df_full= df_full.append(df3)我非常有信心我可以以矢量化的方式做到這一點,這應(yīng)該花費更少的時間(我有 290 個可能日期的 2,300 個產(chǎn)品)。你知道我怎樣才能做到這一點嗎?編輯:添加了粗體文本,更好地解釋了問題
添加回答
舉報
0/150
提交
取消