我有數億行的熊貓數據幀,看起來像這樣:加速向大熊貓DataFrame插入空行?
Date Attribute A Attribute B Value
01/01/16 A 1 50
01/05/16 A 1 60
01/02/16 B 1 59
01/04/16 B 1 90
01/10/16 B 1 84
對於每一個獨特的組合(稱爲b
)的Attribute A
X Attribute B
,我需要填寫從起始空日期該唯一組b
的最長日期到整個數據幀df
中的最大日期。即,因此它看起來像這樣:
Date Attribute A Attribute B Value
01/01/16 A 1 50
01/02/16 A 1 0
01/03/16 A 1 0
01/04/16 A 1 0
01/05/16 A 1 60
01/02/16 B 1 59
01/03/16 B 1 0
01/04/16 B 1 90
01/05/16 B 1 0
01/06/16 B 1 0
01/07/16 B 1 0
01/08/16 B 1 84
,然後計算變異係數(標準偏差/平均值)爲每個唯一組合的值(0插入後)。我的代碼是這樣的:
final = pd.DataFrame()
max_date = df['Date'].max()
for name, group in df.groupby(['Attribute_A','Attribute_B']):
idx = pd.date_range(group['Date'].min(),
max_date)
temp = group.set_index('Date').reindex(idx, fill_value=0)
coeff_var = temp['Value'].std()/temp['Value'].mean()
final = pd.concat([final, pd.DataFrame({'Attribute_A':[name[0]], 'Attribute_B':[name[1]],'Coeff_Var':[coeff_var]})])
這運行速度非常慢,我正在尋找一種方法來加速它。
對此提出建議?