Pandas fragmentando

Pandas fragmentando
Los científicos o profesionales de datos con frecuencia tienen que manejar conjuntos de datos cuyo tamaño es mucho mayor que la memoria de su sistema local. Es difícil descubrir cómo administrar de manera efectiva la memoria al tiempo que permite el uso más efectivo de los datos. Al tratar con un gran bloque de datos que no cabe en la memoria, puede dividir los datos en porciones más pequeñas utilizando la opción de fragmento de Pandas. Al elegir esta opción, se produce un objeto iterador que se puede utilizar para iterar a través de los diversos fragmentos y realizar filtrado o análisis de la misma manera que uno lo haría al cargar todo el conjunto de datos.

Cómo cargar datos grandes utilizando el tamaño de la fragmentos de pandas

Pandas es una herramienta de código abierto potente y fácil de usar para el análisis de datos construido en Python que permite la importación y visualización de datos en varios formatos, como .TSV, .CSV, .db, y .archivos txt. Solo ".Los archivos CSV ”se utilizarán en los siguientes ejemplos, aunque la técnica es la misma para otros formatos de archivo. La función read_csv () se usará para leer archivos CSV.

Parámetros:

filepath_or_bufferstr: Se puede usar una ruta de cadena válida. Además, una URL podría estar en la cadena. Los esquemas de URL aceptables son FTP, S3, HTTP, GS y FILE. Debe haber un host para las URL de archivo. Aquí hay un ejemplo de un archivo local: archivo:/localhost/path/to/table.CSV.

iteratorbool: Devuelve un objeto TextFileReader para iterar a través del archivo o para recuperar fragmentos usando get_chunk ().

tamaño de porción: Acepta int; es un parámetro opcional. Para la iteración, devuelve un objeto TextFileReader.

El argumento de ChunkSize de la función read_csv () es el que estamos interesados ​​en este artículo. Técnicamente, ChunkSize se refiere a cuántas filas por segundo se lee de un archivo. Podemos decir que las primeras 100 filas serán cargadas por pandas si el frasco se especifica como 100. El objeto devuelto es un TextFilerader que debe ser iterado para recuperar los datos.

Ejemplo # 1: Cargue datos utilizando la función read_csv () sin chunksize

Para este ejemplo, descargaremos un conjunto de datos con un .Extensión del archivo CSV desde cualquier sitio web de código abierto. Puede descargar el conjunto de datos requerido de varios sitios web en Internet. Para cargar un archivo en pandas, primero importaremos la biblioteca de pandas. Después de importar los pandas, utilizaremos la función read_csv () para cargar el archivo en nuestro entorno actual. Un archivo CSV se importa al formato DataFrame utilizando la función Pandas read_csv ().

Notará que, junto con los pandas, también hemos importado una biblioteca de PPRint porque las estructuras de datos se pueden imprimir de manera comprensible y atractiva utilizando el módulo Python PPRint. Después de importar los módulos, cargamos nuestro .Archivo CSV colocando el nombre del archivo junto con la extensión del archivo dentro del PD.función read_csv (). Para ver nuestras columnas dentro del DataFrame, hemos utilizado el PD.atributo de columnas. Estas etiquetas de columna nos permiten acceder a los elementos de DataFrame y realizar la manipulación de datos. Los "pandas. Marco de datos.El atributo de columnas "se utiliza para obtener las etiquetas de columna individuales de un marco de datos. El .El atributo de forma se puede usar para ver el número de columnas y filas en nuestro marco de datos.

El valor "90836" es el número total de filas en nuestro marco de datos, como hemos visto anteriormente, hay diez columnas en nuestro marco de datos, I.mi., "Calificaciones".

Ejemplo # 2: Cargue una gran cantidad de datos usando Chunksize en la función Read_csv ()

En este ejemplo, descargaremos otro conjunto de datos de Internet. La misma función read_csv () se usará para cargar el archivo. Pero esta vez, especificaremos un parámetro "fragmento" dentro de la función. Antes de usar nuestra función read_csv (), importaremos las bibliotecas pandas y pprint.

Veamos el número total de columnas y filas en nuestro archivo de conjunto de datos sin usar un parámetro de frase.

Leemos el conjunto de datos proporcionado en el ejemplo anterior y presentamos sus detalles. Las filas y columnas devueltas por el atributo "Forma" son 5704247 y 5, respectivamente. Usando el atributo "Info", también mostramos detalles sobre las filas y columnas del conjunto de datos.

Como podemos ver, este conjunto de datos tiene 5704247 filas, y el procesamiento de conjuntos de datos masivos utiliza gran parte de la RAM de la computadora. El parámetro de fragmento en estas circunstancias se puede utilizar para guardar nuestros recursos.

Se devuelve un objeto TextFileReader utilizando el chunksize dentro de la función read_csv (). Cuando el parámetro ChunkSize se pasa a la función Read_csv (), se crea un lector de TextFilereader. El archivo original se puede leer en piezas utilizando este objeto de archivo abierto. Internamente, el bucle for crea iteradores para dichos objetos aplicando el método iter (). Recibimos un iterador cuando empleamos el argumento de fragmento. Para obtener los valores, podemos iterar a través de este objeto. El conjunto de datos se lee en los fragmentos de datos con las filas especificadas en el ejemplo anterior porque el argumento de ChunkSize proporcionó un valor. El parámetro de frase se especificó a 1000000 para nuestro conjunto de datos, lo que resultó en seis iteradores.

Ejemplo # 3: Otro ejemplo de parámetro de frase

Como se discutió anteriormente, ChunkSize es el parámetro que se usa en Python con frecuencia para leer archivos o conjuntos de datos grandes. Chunksize divide los datos en tiempo real mientras se lee en secciones más pequeñas conocidas como fragmentos, lo que aumenta la efectividad general del programa; Si leemos un .Archivo CSV sin este parámetro.

Los pandas se usan con frecuencia para almacenar una gran cantidad de datos; Permiten una fácil legibilidad y acceso a los datos en poco tiempo. El archivo dado (calificaciones.CSV) tiene datos de 1048575 pacientes dentro de 1048575 y 4 columnas. Cuando un programa lee este archivo sin ningún parámetro específico, tomará mucho tiempo procesar esta información, lo que hace que el programa sea menos eficiente. Cuando encontramos este tipo de datos grandes, utilizamos parámetros como Chunksize. El parámetro de frase utiliza iteradores para iterar sobre un contenedor específico, como la lista, y puede acoplarse con diferentes bucles.

En el ejemplo anterior, la estructura de datos de pandas se utiliza para leer y almacenar la información, y también se utiliza el fragmento, lo que está iterando sobre un objeto para obtener los valores. Lee nuestro archivo dado en subsecciones de datos (fragmentos). Específicamente para el conjunto de datos dado, se especificaron cuatro iteradores para el fragmento de 250000. El valor devuelto después de leer el objeto no es el marco de datos sino un analizador de pandas, yo.mi., pandas.IO.analgésicos.TextFilerader. Estos son responsables de la transversal sobre el objeto y los valores que resultan en el final. Lo que debe tener en cuenta aquí es que el número de columna es el mismo para cada iterador, lo que indica que el parámetro "fragmento" usa solo el número de filas, no la columna, durante la creación del iterador.

Conclusión

En este tutorial, hemos visto que la memoria de su máquina local no puede acomodar el tamaño de los conjuntos de datos que los científicos de datos generalmente administran. Por lo tanto, al leer enormes conjuntos de datos, empleamos el argumento de fragmentos para desglosar el conjunto de datos en fragmentos de datos. Ahora, después de leer este tutorial, es posible que pueda usar el argumento de Chunksize usted mismo. Implementamos algunos ejemplos para enseñarle cómo dividir su conjunto de datos con el .Extensión del archivo CSV en pequeños trozos.