如何在pandas中使用用户函数fillna()

2024-09-30 01:22:14 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的数据帧片段:

Title | Age     
------+--------
Mr.   | 30
Mr.   | NaN
Mr.   | 32
Mrs.  | 28
Mrs.  | 16
Mr.   | 34
Mrs.  | NaN

编辑:我添加了最后一行,以澄清问题

我想插补NaNs(第二行和最后一行),对于第二行,它应该使用数据帧中另一个“Mr.”的平均值,所以在这个例子中,应该是32,在最后一行应该使用另一个“Mrs.”的平均值,所以应该是22

计算平均数很容易

^{pr2}$

所以我写了一个叫做agefun的函数:

def agefun(df, t):
    return df.loc[df["Title"] == t]["Age"].mean()

它是有效的,现在,我如何将这个函数与fillna()函数一起使用呢?我想要一些像:

df['Age'].fillna(agefun(df, this_row_title))

但它当然不起作用,我不知道如何告诉函数我喜欢与特定行中标题对应的值。在

如何执行?在


Tags: 数据函数编辑dfagetitlenan例子

热门问题