Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Data Science

Cómo eliminar filas y columnas con Pandas en Python

Yuri Matheus
Yuri Matheus
19/10/2020

Compartir

Mira este artículo:
  1. Eliminar columnas en pandas
  2. Eliminar filas
  3. Para saber más

Cuando trabajamos con datos, especialmente en la fase de exploración de datos, realizamos muchos cambios en el dataset.

Hay columnas que no queremos, o que no necesitamos usar, o filas que no contienen datos válidos que deben eliminarse.

Pero, ¿cuánto más datos tenemos, no es mejor?

Cuando analizamos datos, principalmente para entrenar modelos de inteligencia artificial, algunos datos pueden perjudicar en lugar de ayudar. Por lo tanto, tenemos que usar solo los datos que tengan sentido para el modelo.

¡Excelente! Ya sabemos que necesitamos tratar los datos, pero ¿cómo podemos hacer eso, cómo eliminar los datos?

Eliminar columnas en pandas

Tengo un dataset sobre propinas que dan los usuarios a los taxistas. Vamos a utilizar Pandas para nuestro análisis, Pandas es una biblioteca que facilita la manipulación de datos. En Pandas, tenemos un tipo de dato llamado DataFrame. Podemos decir que un DataTrame es como una planilla de Excel. Es decir, tenemos filas y columnas.

Vamos a realizar algunos análisis en nuestro dataset de propinas, llamado tips. Podemos ver el comienzo del contenido de la planilla utilizando el método head del data frame:

tips.head()

img

Podemos ver que el DataFrame se parece mucho a una planilla o a una tabla. Cada columna también conocida como variable tiene un nombre, y cada fila, conocida como observación, tiene un índice y los datos que representan cada variable.

Para el análisis que quiero hacer, no necesito saber si la persona fuma o no, por lo que no es necesario analizar la columna de smoker, ¿cómo podemos eliminarla?

En Pandas, hay un método drop para DataFrame. En este método, podemos pasar el índice de la fila que queremos eliminar:

>>> # en el 
>>> tips.drop(2)

img

Con este comando, eliminamos la fila con índice 2. Pero en realidad no queremos eliminar una fila, sino una columna. Para hacer esto, simplemente pasamos el parámetro columns, este parámetro recibe una lista con el nombre de las columnas que queremos eliminar, smoker en nuestro caso.

Después de esto, mostramos nuevamente los datos:

tips.drop(columns = [‘smoker']) 
tips.head()

img

La columna sigue ahí. ¿Qué sucedió?

Por defecto, las operaciones que realizamos en un DataFrame no se aplican directamente en ese conjunto de datos. Es decir, cada vez que eliminamos una columna, fila, etc., lo que hace Pandas es devolver un nuevo DataFrame con los cambios aplicados. Es decir, el DataFrame original permanece intacto.

Lo que podemos hacer para resolver esto es asignar este nuevo DataFrame que el método drop() retorna a la misma variable tips:

tips = tips.drop(columnas = ['smoker'])
tips.head()

img

¡Super! Logramos eliminar la columna que necesitábamos. Ahora, pasemos a otra parte del procesamiento de datos. En el análisis que estoy haciendo, quiero analizar las propinas de aquellos recorridos donde hubo un grupos de pasajeros. Ese dato lo tenemos en nuestra columna size de nuestro DataFrame, se considera un grupo cuando en esta columna el valor es 2 o más.

¿Cómo podemos hacer para eliminar las filas que no cumplen con esta condición?

Eliminar filas

Sabemos que podemos usar el método drop() para eliminar una fila. Pero, ¿cómo eliminar todas las filas que contienen un solo pasajero?

Podemos recorrer e iterar a través de cada fila en el DataFrame y verificar si el número de pasajeros es mayor que uno. Si es así, conservamos esos datos, de lo contrario, los eliminamos del DataFrame.

Pero Pandas ya tiene varias formas de trabajar con DataFrames. Lo que podemos hacer es crear un filtro en el que se devuelva un nuevo DataFrame con los datos ya filtrados.

De la misma forma Pandas nos permite filtrar un DataFrame por sus datos de columna con condiciones en las filas. Por ejemplo, para el dataframe propinas (tips) capturamos la columna que define el número de pasajeros (size), en base a eso, filtramos las líneas en las que la columna size es mayor que uno:

filtro = tips['size'] > 1

Ahora, simplemente pasamos este filtro como selector en el DataFrame:

filtro = tips['size'] > 1
propina_en_grupo = tips[filtro]

Este filtro nos devuelve un DataFrame con todas las filas donde el número de pasajeros es mayor que 1. Es decir, los datos que pasan a través del filtro definido:

propinas_en_grupo.head()

img

Para saber más

Los filtros utilizados pueden ser más complejos. Podemos usar estructuras condicionales, como AND y OR, y verificar el valor de más de una columna. Además, podemos hacer otros tipos de filtros.

¿Cómo verificar si alguna fila tiene un valor nulo o un valor de un tipo diferente al esperado?. Para esto, se puede utilizar el concepto de rich comparison.

Además de la eliminación, podemos realizar otras operaciones con DataFrames, como ser: operaciones que involucran strings, renombrar columnas y agregar nuevas columnas, unir un DataFrame a otro, entre varias otras operaciones.

¿Qué tal aprender más sobre Pandas y sus diversos recursos? Entonces, ¡Mira nuestros cursos de Python para Data Science aquí en Alura!

Para seguir expandiendo tus conocimientos descarga nuestro ebook gratuito de Data Science a través del siguiente link: https://lp.caelum.com.br/alura-latam-leads-ebook-data-science

Yuri Matheus
Yuri Matheus

Yuri é desenvolvedor e instrutor. É estudante de Sistemas de Informação na FIAP e formado como Técnico em Informática no Senac SP. O seu foco é nas plataformas Java e Python e em outras áreas como Arquitetura de Software e Machine Learning. Yuri também atua como editor de conteúdo no blog da Alura, onde escreve, principalmente, sobre Redes, Docker, Linux, Java e Python.

Artículo Anterior
Primeros pasos en Inteligencia Artificial (IA)
Siguiente Artículo
La diferencia entre las funciones input() y raw_input() en Python

Ver otros artículos sobre Data Science

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast