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=0
  • inplace 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
Eliminar los valores perdidos en Pandas

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=0
  • inplace
  • 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
Eliminar los valores duplicados en Pandas

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
Eliminar las filas con valores específicos de la columnas

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
Convertir DataFrame a JSON

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
Convertir DataFrame a JSON con orient=records

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
Count number of unique values in a column

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
Save multiple lists as one csv file

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
Leer DataFrame de manera eficiente en la memoria

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
Change all values in a DataFrame using apply

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