Saltar al contenido

Pandas DataFrame Llenar valores faltantes en una columna

Estate atento porque en este post hallarás el hallazgo que buscas.

Solución:

trata de hacerlo:

def get_age(s):
    present = s.age.notna().idxmax()
    diff = s.loc[[present]].eval('age - Year').iat[0]
    s['age'] = diff + s.Year
    return s

df.groupby(['ID']).apply(get_age)

Creo que en lugar de tratar de completar los valores, busque el año de nacimiento.

df["age"] =  df["Year"] - (df["Year"]-df["age"]).mean()

O solución general con más de 1 id:

s = df.loc[df["age"].notnull()].groupby("ID").first()

df["age"] = df["Year"]-df["ID"].map(s["Year"]-s["age"])

print (df)

        ID  Year   age
0   280165  1991  12.0
1   280165  1992  13.0
2   280165  1993  14.0
3   280165  1994  15.0
4   280165  1995  16.0
5   280165  1996  17.0
6   280165  1997  18.0
7   280165  1998  19.0
8   280165  1999  20.0
9   280165  2000  21.0
10  280165  2001  22.0
11  280165  2002  23.0
12  280165  2003  24.0
13  280165  2004  25.0
14  280165  2005  26.0
15  280165  2006  27.0
16  280165  2007  28.0
17  280165  2008  29.0
18  280165  2010  31.0
19  280165  2011  32.0
20  280165  2012  33.0
21  280165  2013  34.0
22  280165  2014  35.0
23  280165  2015  36.0
24  280165  2016  37.0
25  280165  2017  38.0

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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