Python

¿Cómo eliminar columnas y filas en un dataframe pandas?

Al trabajar con grandes conjuntos de datos es habitual tener que eliminar registros para eliminar su tamaño. Por ejemplo, al importar los datos se un archivo CSV puede ser que los registros de algunas columnas no sean necesarios. En esta entrada vamos a explicar cómo eliminar columnas y filas en un dataframe pandas.

Para poder eliminar datos de un dataframe es necesario disponer antes de uno. Para ello se puede crear un listado de facturas con seis registros y cinco características. Esto es lo que se hace en el siguiente código.

import pandas as pd

invoices = {'invoice': [1, 2, 3, 4, 5, 6],
            'client': [4, 1, 3, 1, 2, 6],
            'units': [3, 2, 1, 2, 1, 1],
            'price': [27.76, 21.13, 29.82, 29.96, 21.11, 23.97],
            'total': [83.28, 42.26, 29.82, 59.92, 21.11, 23.97]}
invoices = pd.DataFrame(invoices)
   invoice  client  units  price  total
0        1       4      3  27.76  83.28
1        2       1      2  21.13  42.26
2        3       3      1  29.82  29.82
3        4       1      2  29.96  59.92
4        5       2      1  21.11  21.11
5        6       6      1  23.97  23.97

Cómo eliminar una sola columna de un dataframe

Para eliminar una columna de un dataframe de pandas se puede utilizar el método drop. Este método requiere como argumento el nombre de la columna en una lista. Además, como el método puede eliminar tanto filas como columnas, es necesario especificar el eje. En el caso de las columnas el valor de esta propiedad es 1. Ahora, para eliminar el identificador de clientes del conjunto de ejemplo se puede utilizar el siguiente código.

invoices.drop(['client'], axis=1)
   invoice  units  price  total
0        1      3  27.76  83.28
1        2      2  21.13  42.26
2        3      1  29.82  29.82
3        4      2  29.96  59.92
4        5      1  21.11  21.11
5        6      1  23.97  23.97

El resultado es un nuevo dataframe sin la columna indicada en la lista.

Cómo eliminar múltiples columnas de un dataframe

El método drop también se puede utilizar para eliminar más de una columna. Lo que se puede conseguir indicar como argumento una lista con más de un nombre. Así, en el caso se eliminar el identificador de factura, de cliente y el número de unidades se puede utilizar el siguiente código.

invoices.drop(['invoice', 'client', 'units'], axis=1)
   price  total
0  27.76  83.28
1  21.13  42.26
2  29.82  29.82
3  29.96  59.92
4  21.11  21.11
5  23.97  23.97

Puede observarse que sigue siendo necesario indicar el eje como en el caso anterior. El resultado es el esperado, un nuevo dataframe sin las columnas indicadas.

Cómo eliminar filas de un dataframe

Tal como se ha comentado anteriormente el método drop puede eliminar tanto filas como columnas. Para eliminar filas es necesario indicar como argumento del método una lista el índice de estas. Además, en este caso el valor que se ha de asignar a la propiedad axis es cero. Por ejemplo, para eliminar los registros 1 y 2 se puede emplear el siguiente código.

invoices.drop([1, 2],axis=0)
   invoice  client  units  price  total
0        1       4      3  27.76  83.28
3        4       1      2  29.96  59.92
4        5       2      1  21.11  21.11
5        6       6      1  23.97  23.97

Obteniéndose como resultado un nuevo dataframe sin las filas seleccionadas en la lista. Otra forma de seleccionar las filas a eliminar es mediante range. Lo que permite seleccionar rápidamente cualquier subconjunto. Por ejemplo, para eliminar las filas impares se puede utilizar range desde 1 hasta 6 en pasos de dos. Siendo esto lo que se hace en siguiente ejemplo.

invoices.drop(range(1, 6, 2),axis=0)
   invoice  client  units  price  total
0        1       4      3  27.76  83.28
2        3       3      1  29.82  29.82
4        5       2      1  21.11  21.11

En donde el resultado es un nuevo dataframe sin las filas 1, 3 y 5.

Conclusiones

En esta entrada se ha visto cómo eliminar columnas y filas en un dataframe pandas. Para lo que se ha visto el método drop de estos objetos. Saber utilizar este método es básico para limpiar correctamente los conjuntos de datos antes de realizar cualquier análisis.

Imágenes: Pixabay (Free-Photos)

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Pandas

Recent Posts

Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

En la era del dato, las organizaciones se enfrentan al reto de gestionar volúmenes masivos…

3 días ago

Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)

En la serie Creación de una API REST con Express y TypeScript construimos una API…

5 días ago

Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte

Durante la Segunda Guerra Mundial, la Fuerza Aérea de Estados Unidos quería reforzar sus aviones…

1 semana ago

Cómo abrir una ventana de Chrome con tamaño y posición específicos desde la línea de comandos en Windows

En muchas situaciones —ya sea para grabar un tutorial, tomar capturas de pantalla profesionales, probar…

2 semanas ago

La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento

Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…

2 semanas ago

Programador de tareas de Windows: Guía definitiva para automatizar tu trabajo (BAT, PowerShell y Python)

En el trabajo diario con ordenadores, es común encontrarse con tareas repetitivas: realizar copias de…

3 semanas ago

This website uses cookies.