Rédiger du code efficace avec pandas
Leonidas Souliotis
PhD Candidate

start_time = time.time()
poker[['R1', 'R2', 'R3', 'R4', 'R5']].sum(axis=1)
print("Time using pandas vectorization: {} sec".format(time.time() - start_time))
Temps avec la vectorisation pandas : 0.0026819705 s
poker[['R1', 'R2', 'R3', 'R4', 'R5']].sum(axis=1).head()
| | |
|--------------|----|
| 0 | 47 |
| 1 | 47 |
| 2 | 47 |
| 3 | 47 |
| 4 | 47 |
| dtype: int64 | -- |
data_generator = data.iterrows()
start_time = time.time()
for index, value in data_generator:
sum([value[1], value[3], value[5], value[7]])
print("Time using .iterrows(){} seconds" % (time.time() - start_time))
Résultats de l'opération ci-dessus calculés en 3.37918996 secondes
start_time = time.time()
data[['R1', 'R2', 'R3', 'R4', 'R5']].apply(lambda x: sum(x),axis=1)
print("Results from the above operation calculated in %s seconds" % (time.time() - start_time))
Résultats de l'opération ci-dessus calculés en 0.637711048 seconde
- Écart entre la vectorisation et la fonction `.iterows()` : 111 800,75 %
- Écart entre la vectorisation et la fonction `.apply()` : 20 853 %
Rédiger du code efficace avec pandas