4
對於每個日期date
我想要從品牌的每個組合中獲得金額的平均值。熊貓創建powerset和平均數據
例如,我有一個數據幀:
df1 =
Company Brand Date Amount
A 1 01/01/2015 3
A 1 01/02/2015 4
A 1 01/03/2015 2
A 2 01/01/2015 7
A 2 01/02/2015 2
A 2 01/03/2015 1
A 3 01/01/2015 6
A 3 01/02/2015 3
A 3 01/03/2015 1
和我想要的結果是以下DF,其中所述的量是組合組的平均值:
result =
Company Brand Date Amount
A 1 01/01/2015 3
A 1 01/02/2015 4
A 1 01/03/2015 2
A 2 01/01/2015 7
A 2 01/02/2015 2
A 2 01/03/2015 1
A 3 01/01/2015 6
A 3 01/02/2015 3
A 3 01/03/2015 1
A 1_2 01/01/2015 5
A 1_2 01/02/2015 3
A 1_2 01/03/2015 1.5
A 2_3 01/01/2015 6.5
A 2_3 01/02/2015 2.5
A 2_3 01/03/2015 1
A 1_3 01/01/2015 4.5
A 1_3 01/02/2015 3.5
A 1_3 01/03/2015 1.5
A 1_2_3 01/01/2015 5.33
A 1_2_3 01/02/2015 3
A 1_2_3 01/03/2015 1.33
目前,我用groupby來做這個循環,但速度很慢。
d = pd.DataFrame()
comb = ['1_2','1_3','2_3','1_2_3']
for c in comb:
new = df1.loc[(df1.Brand.isin(map(int,c.split('_')))].groupby(['Company','Date'])['Amount'].mean().reset_index()
new.insert(1,'Group',c)
d = d.append(new)
df = df.append(d)
但是,我正在與千家獨特的公司和數百萬行,所以這是非常緩慢的。有沒有辦法加快這一點?