• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • Python
  • Pandas
  • NumPy
  • Matlab
  • Julia
  • JavaScript
  • Excel

Eliminar filas en DataFrame Julia en base a sus valores

enero 26, 2022 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 3 minutos

Una de las tareas más repetidas cuando se procesa un conjunto de datos es el filtrado de registros en base a sus valores. Eliminando aquellos que no son de interés para el análisis que se desea realizar. Por eso, en Julia existe la función filter() con la que es posible filtrar fácilmente los registros de un conjunto de datos. Veamos cómo se puede emplear esta función para eliminar filas en DataFrame Julia cuyos valores no cumplen una o varias condiciones.

Conjunto de datos de ejemplo

A modo de ejemplo se puede crear un conjunto de datos sencillo para comprobar el funcionamiento de la función filter(). Por ejemplo, un conjunto de datos de clientes como el siguiente que ya se utilizó en su momento en la serie de introducción a Julia.

julia> using DataFrames

julia> clients = DataFrame(
           id=[1,2,3,4,5],
           first_name=["Oralie" ,"Imojean" ,"Michele", "Ailbert", "Stevy"],
           last_name=["Fidgeon" ,"Benet" ,"Woodlands", "Risdale", "MacGorman"],
           age=[30 ,21 ,29 ,22, 24])
5×4 DataFrame
 Row │ id     first_name  last_name  age   
     │ Int64  String      String     Int64 
─────┼─────────────────────────────────────
   1 │     1  Oralie      Fidgeon       30
   2 │     2  Imojean     Benet         21
   3 │     3  Michele     Woodlands     29
   4 │     4  Ailbert     Risdale       22
   5 │     5  Stevy       MacGorman     24

Filtrado de los clientes en base a la edad

En el conjunto de datos anterior una operación que podríamos realizar es eliminar aquellos clientes que no tienen una edad. Por ejemplo, eliminar los clientes que sean menores de 25 años. Para ello se puede usar la función filter() pasando como primer parámetro una función que se aplicará sobre cada una de las filas y retorne un valor verdadero o falso. Como segundo parámetro de la función se ha de pasar el DataFrame sobre el que se desea aplicar el filtro. De este modo, la función filter() devolverá un nuevo DataFrame con las filas para las que la función devuelve verdadero. Así, para aplicar el filtro indicado antes solamente hay que escribir

julia> filter(row -> row.age > 25, clients)
2×4 DataFrame
 Row │ id     first_name  last_name  age   
     │ Int64  String      String     Int64 
─────┼─────────────────────────────────────
   1 │     1  Oralie      Fidgeon       30
   2 │     3  Michele     Woodlands     29

En donde el filtro se ha definido mediante una función anónima.

Publicidad


Seleccionar filas en base al nombre del cliente

Otra posible opción de filtrado sería seleccionar aquellos clientes cuyo nombre contenga una a. Lo que nos dejará solamente dos clientes. Para lo que solamente es necesario cambiar la función anónima por otra que aplique contains() sobre el nombre y compruebe si existe o no la letra en el mismo. Lo que se puede hacer con la siguiente línea

julia> filter(row -> contains(row.first_name, 'a'), clients)
2×4 DataFrame
 Row │ id     first_name  last_name  age   
     │ Int64  String      String     Int64 
─────┼─────────────────────────────────────
   1 │     1  Oralie      Fidgeon       30
   2 │     2  Imojean     Benet         21

Combinar condiciones

Finalmente se pueden combinar las dos condiciones anteriores para seleccionar solamente aquellos elementos que cumplen ambas condiciones. Algo que es relativamente sencillo y se puede hacer simplemente mediante

julia> filter(row -> row.age > 25 && contains(row.first_name, 'a'), clients)
1×4 DataFrame
 Row │ id     first_name  last_name  age   
     │ Int64  String      String     Int64 
─────┼─────────────────────────────────────
   1 │     1  Oralie      Fidgeon       30

Pudiéndose ver lo fácil que es crear filtros complejos en DataFrames de Julia. Solamente hay que refinar la función anónima con las condiciones que sean necesarias en cada caso.

Conclusiones

En esta ocasión se ha visto cómo, gracias al uso de la función filter(), es posible eliminar filas en DataFrame Julia en base a sus valores. Una función que ofrece grandes posibilidades al combinarlo con la potencia de las funciones anónimas disponibles en Julia.

Publicidad


Imagen de SplitShire en Pixabay

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • julia
    Filas en DataFrames de Julia (15ª parte – ¡Hola Julia!)
  • julia
    Bucles en Julia (4ª parte - ¡Hola Julia!)
  • julia
    Curso de introducción a Julia: ¡Hola Julia!
  • julia
    Cadenas de texto en Julia (3ª parte - ¡Hola Julia!)
  • julia
    Estructuras en Julia (7ª parte – ¡Hola Julia!)
  • julia
    Introducción a los DataFrames en Julia (11ª parte –…

Publicado en: Julia

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Publicidad





Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Facebook
  • GitHub
  • Instagram
  • Pinterest
  • RSS
  • Twitter
  • Tumblr
  • YouTube

Publicidad

Entradas recientes

Mantener un sistema de alta disponibilidad con PostgreSQL y repmgr

diciembre 1, 2023 Por Daniel Rodríguez

Diferencias entre los errores 401 y 403 del estándar HTTP

noviembre 29, 2023 Por Daniel Rodríguez

Ver el código de cualquier función en Python

noviembre 27, 2023 Por Daniel Rodríguez

Publicidad

Es tendencia

  • El método Sainte-Laguë y su implementación en Python publicado el septiembre 22, 2023 | en Ciencia de datos
  • Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas publicado el mayo 10, 2019 | en Python
  • NumPy NumPy: Crear matrices vacías en NumPy y adjuntar filas o columnas publicado el enero 11, 2021 | en Python
  • ¿Cómo cambiar el nombre de las columnas en Pandas? publicado el mayo 6, 2019 | en Python
  • Ordenación de diccionarios en Python mediante clave o valor publicado el enero 14, 2019 | en Python

Publicidad

Lo mejor valorado

4.9 (22)

Seleccionar filas y columnas en Pandas con iloc y loc

4.7 (12)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.6 (15)

Archivos JSON con Python: lectura y escritura

4.5 (10)

Diferencias entre var y let en JavaScript

4.4 (13)

Ordenación de diccionarios en Python mediante clave o valor

Publicidad

Comentarios recientes

  • Anto en Rendimiento al iterar en JavaScript sobre un vector
  • Daniel Rodríguez en Creación de un certificado Let’s Encrypt en Windows con Win-Acme
  • Guillermo en Creación de un certificado Let’s Encrypt en Windows con Win-Acme
  • Daniel Rodríguez en ¿Cómo eliminar columnas y filas en un dataframe pandas?
  • Miguel en ¿Cómo eliminar columnas y filas en un dataframe pandas?

Publicidad

Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2023 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto