es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Reemplazando valores faltantes mediante la búsqueda en el dataframe de aquellos valores que coincidan.

Tengo un dataframe con ~ 500,000 observaciones, algunas de las columnas tienen espacios en blanco, por ejemplo, un nombre faltante. Sin embargo, los nombres corresponden a un ID, a veces el nombre o el ID están presentes, pero a veces uno u otro falta. ¿Hay alguna forma de buscar en el dataframe, encontrar y emparejar los datos faltantes?

Entonces, en este ejemplo sencillo:

structure(list(Names = c("Jon", "Al", "Phil", "Sarah", "Jon", 
""), ID = c(12, 14, 16, 18, 12, 14)), class = "data.frame", row.names = c(NA, 
-6L))

df:

Names ID
1   Jon 12
2    Al 14
3  Phil 16
4 Sarah 18
5   Jon 12
6       14

Sé que 14 coincide con “Al”. Así que puedo reemplazar el espacio en blanco en la fila 6 con “Al”.
Pero, ¿cómo puedo hacer esto a mayor escala con varios valores faltantes?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, hay varias formas de buscar en el marco de datos y encontrar datos faltantes basados en otros datos disponibles.

    Una opción es utilizar el paquete dplyr en R para agrupar los datos por la columna de ID y luego utilizar la función fill() para completar los valores faltantes basados en los valores conocidos dentro de cada grupo.

    Por ejemplo:

    library(dplyr)
    
    df_filled <- df %>%
      group_by(ID) %>%
      fill(Names)
    

    Esto crearía un nuevo marco de datos llamado df_filled que tiene todos los nombres faltantes completados en función de la columna de ID.

    Alternativamente, se podría utilizar el paquete tidyr para completar los valores faltantes basados en el valor anterior dentro de cada columna.

    Por ejemplo:

    library(tidyr)
    
    df_filled2 <- df %>%
      fill(Names, .direction = "down")
    

    Esto crearía un nuevo marco de datos llamado df_filled2 que tiene todos los nombres faltantes completados en función del valor no faltante anterior en la misma columna.

    Ambos métodos permiten limpiar datos a gran escala y completar datos faltantes en función de otros datos disponibles.

Comments are closed.