[vc_row][vc_column][vc_column_text]Al revisar sobre Pandas, ubique con esta increíble librería que amplía el código de pandas existente cambiando solo una línea de código y haciéndola al menos 2 veces más rápido en comparación con el existente. Ver tan grandes reclamos sobre la velocidad de pandas me dio una razón para probarla y ver los resultados del mismo.
Pueden ubicar el proyecto modin en github.
Se va a utilizar 2 datasets de diferentes tamaños para comparar los tiempos de respuesta para ambos métodos.[/vc_column_text][vc_single_image image=»2041″ img_size=»full» alignment=»center»][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
Dataset 1:
Size = 445MB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/usr/bin/env python import time import pandas as pd duration = [] for i in range(3): start = time.time() data_df = pd.read_csv( 'data.txt', sep = '\s\|\|\s' ) stop = time.time()-start duration.append(stop) del data_df final_time_pd = sum(duration) / float(len(duration)) print 'Average time taken to load dataset for pandas over 3 times is approx {} seconds'.format(final_time_pd) >>> Average time taken to load dataset for pandas over 3 times is approx 12.120 seconds |
Utilizando la librería modin:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import time import modin.pandas as pd duration = [] for i in range(3): start = time.time() data_df = pd.read_csv( 'data.txt', sep = '\s\|\|\s' ) stop = time.time()-start duration.append(stop) del data_df final_time_pd = sum(duration) / float(len(duration)) print 'Average time taken to load dataset for modin pandas over 3 times is approx {} seconds'.format(final_time_pd) >>> Average time taken to load dataset for modin pandas over 3 times is approx 6.515 seconds |
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
Dataset 2:
Size = 900 MB
Utilizamos el mismo código y volvemos a ejecutar, y obtenemos lo siguiente:
1 2 | >>> Average time taken to load dataset for pandas over 3 times is approx 111.723 seconds >>> Average time taken to load dataset for modin pandas over 3 times is approx 71.770 seconds |
Desafortunadamente, modin no admite el método read_table a partir de ahora, por eso se tuvo que utilizar read_csv
De acuerdo a lo que se observa, los resultados son sorprendentes. Esto permitirá manejar una buena cantidad de datos en pandas a una mayor velocidad.
Modin utiliza Ray para proporcionar una manera fácil de acelerar los programas con pandas, scripts y librerías pandas, al mismo tiempo que ofrece una integración y compatibilidad perfecta con el código de pandas existente. Utiliza los 4 núcleos físicos mientras que en los pandas, solo puede usar un núcleo a la vez cuando estas haciendo cálculos de cualquier tipo.
Esto ha contribuido a los entusiastas de Data Science / ML. Pruébelo al menos una vez para su caso de uso.
Este artículo se encuentra basado en Faster pandas, even on your laptop.[/vc_column_text][/vc_column][/vc_row]