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

路易斯

这是我拥有的数据框的一部分:

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

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

我要估算NaN(第二行和最后一行),对于第二行,它应该使用其他“先生”的均值。在数据框中,因此在这种情况下应为32,在最后一行应使用其他“夫人”的平均值,因此应为22

计算均值就像做一样容易

value = df.loc[df["Title"] == "Mr."]["Age"].mean()

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

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

现在,它如何工作,如何将这个函数与fillna()函数一起使用?我想要类似的东西:

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

但是,当然这是行不通的,我不知道如何告诉函数我喜欢该特定行中Title对应的值。

如何执行呢?

亚历山大大帝

变换保持与数据帧中原始序列相同的形状。

df['Age'] = df.groupby('Title').transform(lambda group: group.fillna(group.mean()))

>>> df
  Title  Age
0   Mr.   30
1   Mr.   32  # (30 + 32 + 34) / 3 = 32
2   Mr.   32
3  Mrs.   28
4  Mrs.   16
5   Mr.   34

在上面的示例中,它NaN通过计算组的平均值(即,其中Titleis为的所有行的平均值)使第二行填充的第二行中的一个之外的所有值保持不变Mr.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在pandas数据框中编写用户定义的fillna函数,以使用条件填充np.nan不同的值

在Python中使用用户输入填充函数参数

使用用户填充DropDownList

如何使用 fillna() 函数为 python 中的分类变量填充 NA/Null

如何使用用户定义的相等函数在Javascript中创建一组用户定义的对象?

如何使用用户生成的整数数组填充dataGridView

如何使用 purrr::pmap 在 R 中调用用户定义的函数

如何在Spark SQL中定义和使用用户定义的聚合函数?

如何在Java中调用用户定义的Lambda函数

如何在C ++中调用用户定义的函数?

如何在VBA代码中调用用户定义的函数

如何在代码中调用用户定义函数?

如何在函数中使用用户定义类型?

如何使用用户定义的函数进行jquery链接

如何使用用户分配的身份触发Blob函数

如何使用用户定义函数迭代列值

如何创建使用用户定义函数的BigQuery视图?

如何在胡子PHP中使用用户定义的函数

如何使用用户定义的函数优化BLOB访问

javascript如何使用用户输入添加构造函数对象

Python:如何使用用户定义的函数拟合模型

使用用户定义的函数在r中应用

使用用户定义函数中的值创建组合框

在MATLAB中使用用户定义脚本中的函数

使用用户输入填充组合框

如何使用插入更新另一个表中的列,并使用用户定义的函数交叉应用

如何从 PHP 中的另一个用户定义函数调用用户定义函数

如何从bash中的另一个用户定义函数调用用户定义函数?

如何使用用户ID在Firebase中检索字段