El paquete Pandas de Python ofrece un montón de funciones y características interesantes que ayudan a manipular los datos de manera más eficiente. También permite realizar numerosos pasos de limpieza y preprocesamiento de datos con muy poca dificultad.
Es estupendo, ¿verdad? Aquí tienes una lista de algunas de las funciones y trucos de Pandas más utilizados para ayudarte a disfrutar de tu viaje de ciencia de datos.
Cómo eliminar los valores faltantes en DataFrame
Deshacerse de los valores perdidos es una de las tareas más comunes en la limpieza de datos. Los valores faltantes pueden estar en una sola fila o columna o en varias filas y columnas.
Dependiendo de su aplicación y del dominio del problema, se pueden utilizar diferentes enfoques para manejar los datos que faltan - como la interpolación, la sustitución con la media, o simplemente la eliminación de las filas con valores perdidos.
Pandas ofrece la función dropna
que elimina todas las filas (para axis=0) o todas las columnas (para axis=1) en las que hay valores perdido s. Algunos de los argumentos de la función dropna son los siguientes:
axis
que especifica si se deben eliminar las filas (axis=0) o si se deben eliminar las columnas (axis=1)subset
que especifica una lista de columnas para considerar los valores perdidos cuando axis=0inplace
que especifica si se van a realizar cambios en el propio DataFrame existente
Consulte los documentos enlazados aquí para obtener información más detallada.
En el siguiente ejemplo, estamos creando un pequeño DataFrame con valores perdidos y luego descartamos las filas con valores perdidos en cualquier columna.
![image-4](https://www.freecodecamp.org/news/content/images/2021/03/image-4.png)
Cómo eliminar duplicados en DataFrame
Otra tarea común de limpieza de datos es la eliminación de filas duplicadas. La función drop_duplicates
realiza esto con argumentos similares a dropna
como:
subset
, que especifica un subconjunto de columnas a considerar para el valor duplicado cuando axis=0inplace
keep
, que especifica qué valores duplicados conservar. Mantener puede ser igual al primero, al último o Falso para eliminar todos los duplicados.
Consulta los documentos enlazados aquí para obtener información más detallada.
Dupliquemos algunas filas y eliminémoslas de nuestro dataset (conjunto de datos):
![image-5](https://www.freecodecamp.org/news/content/images/2021/03/image-5.png)
Cómo eliminar filas con valores específicos de la columna
Supongamos que queremos mantener sólo las filas en las que el tipo de proyecto es Web o en las que el número de horas trabajadas es igual a 12. Así es como podemos hacerlo.
Con este método, podemos filtrar las filas en función de ciertos valores de columna específicos:
![image-8](https://www.freecodecamp.org/news/content/images/2021/03/image-8.png)
Cómo convertir DataFrames en JSON
Los DataFrames son estructuras optimizadas y geniales para trabajar. Y JSON es uno de los formatos de datos más populares para el intercambio de datos sin problemas.
Vamos a convertir nuestro DataFrame a JSON usando to_json
que requiere argumentos como:
orient
, que especifica cuáles deben ser los pares de clave y valor. Por defecto es columns (columnas), por lo que el nombre de la columna es la clave y cada columna es el valor.date_format
que especifica el formato de la fecha. El valor por defecto es epoch.
Mira el ejemplo siguiente:
![image-11](https://www.freecodecamp.org/news/content/images/2021/03/image-11.png)
Podemos ver que to_json
ha devuelto una cadena con el siguiente esquema:
column_0 :
{ row_index_0: column_value_0, row_index_1:column_value_1, ...},
column_1:
{ row_index_0: column_value_0, row_index_1:column_value_1, ...},
...
column_N:
{ row_index_0: column_value_0, row_index_1:column_value_1, ...}
Si queremos convertir cada fila en un diccionario, tenemos que especificar que orient=records
y parsearlo usando el módulo JSON.
![image-12](https://www.freecodecamp.org/news/content/images/2021/03/image-12.png)
Cómo contar el número de valores únicos en una columna
Digamos que queremos saber cuántos tipos de proyectos diferentes existen. Podemos obtener esa información utilizando la función nunique
.
![image-13](https://www.freecodecamp.org/news/content/images/2021/03/image-13.png)
Cómo guardar el DataFrame como archivo .csv
Sólo se requiere una línea de código para guardar el DataFrame como un archivo csv:
dataset.to_csv("save_as_csv.csv")
Cómo guardar varias listas como un solo archivo .csv
Supongamos que tenemos tres listas separadas como fuente de datos y queremos guardarlas juntas en un archivo csv. Esto sólo implica dos pasos:
- convirtiéndola en un número de tuplas mediante zip,
- y luego convirtiéndola en una lista.
En el ejemplo siguiente, seguimos este enfoque para convertir las tres listas en un DataFrame que ahora podemos guardar como archivo .csv.
![image-15](https://www.freecodecamp.org/news/content/images/2021/03/image-15.png)
Cómo leer DataFrames de forma eficiente en términos de la memoria
A menudo tenemos que leer archivos tan grandes que no caben en la memoria. Para estos conjuntos de datos gigantescos, utilizamos un enfoque diferente.
Primero, creamos un objeto TextFileReader
. Luego especificamos un parámetro llamado chunksize
que especifica cuántas filas del archivo queremos leer a la vez, digamos 4 filas. Así que leemos 4 filas a la vez, realizamos algunas tareas en ese fragmento, y pasamos a las siguientes 4 filas.
Es más probable que los trozos pequeños quepan en la memoria que el archivo completo de miles de filas. El siguiente ejemplo muestra cómo funciona el chunking.
![image-16](https://www.freecodecamp.org/news/content/images/2021/03/image-16.png)
Aquí leemos el conjunto de datos de california
1.000 filas a la vez, eliminamos todas las filas en las que la median_income
es menor o igual a 3, y añadimos estos trozos reducidos para hacer un conjunto de datos más pequeño.
Puede ahorrar más memoria leyendo sólo las columnas que necesite y especificando tipos de datos más pequeños para las columnas, como se describe detalladamente en los documentos enlazados aquí.
Cómo cambiar todos los valores de un DataFrame utilizando apply
Volvamos a nuestro ejemplo de un DataFrame para ilustrar esto. Nos centramos en la columna `Hours_Worked`, incrementando la cuenta en 1 si es un número par y en 2 si es un número impar. Para este propósito utilizamos una función lambda.
![image-17](https://www.freecodecamp.org/news/content/images/2021/03/image-17.png)
Conclusión
Pandas es un poderoso paquete que a veces puede parecer desalentador debido a su inmensidad. Por eso he intentado enumerar algunas de las funciones más útiles que he encontrado.
Estas funciones de Pandas te ayudarán a acelerar tus tareas de análisis de datos. Gracias por tu tiempo y espero que hayas disfrutado leyendo este artículo.
Traducido del artículo de Suchandra Datta - How to Get Started with Pandas in Python – a Beginner's Guide