Я выполняю преобразование данных на фрейме данных с 9 миллионами записей, слишком много времени занимает (~ 20-25 минут) цикл на всем фрейме данных, ниже приведен мой код, может кто-нибудь помочь мне с увеличением скорость цикла или любой другой альтернативы.
Например:
account_angaza_id cumulative_paid
0 AC002006 5000.0
1 AC002006 5000.0
2 AC002006 0.0
3 AC002006 0.0
4 AC002006 0.0
5 AC002006 0.0
6 AC002006 0.0
7 AC002006 0.0
8 AC002006 0.0
9 AC002006 0.0
10 AC002007 5000.0
11 AC002007 0.0
12 AC002007 0.0
13 AC002007 0.0
14 AC002007 0.0
15 AC002007 0.0
16 AC002007 0.0
17 AC002007 0.0
18 AC002007 0.0
for i in df_merged.index:
if (df_merged.at[i+1,'cumulative_paid'] == 0 and df_merged.at[i+1,'account_angaza_id'] == df_merged.at[i,'account_angaza_id']):
df_merged.at[i+1,'cumulative_paid'] = df_merged.at[i,'cumulative_paid']
if i+1 == len(df_merged)-1:
break
Результат
account_angaza_id cumulative_paid
0 AC002006 5000.0
1 AC002006 5000.0
2 AC002006 5000.0
3 AC002006 5000.0
4 AC002006 5000.0
5 AC002006 5000.0
6 AC002006 5000.0
7 AC002006 5000.0
8 AC002006 5000.0
9 AC002006 6000.0
10 AC002007 6000.0
11 AC002007 6000.0
12 AC002007 6000.0
13 AC002007 6000.0
14 AC002007 6000.0
15 AC002007 6000.0
16 AC002007 6000.0
17 AC002007 6000.0
18 AC002007 6000.0
Любой вклад будет полезен.