如何填写其他列均值的缺失值?

数据挖掘 Python 熊猫 数据清理 缺失数据
2022-01-29 13:43:45

我有一个包含“预算”和“类型”属性的电影数据集。

我想用每种类型的平均预算来填补预算的缺失值。

我首先创建两个有或没有预算的数据框。

BudgetNull = data[data['budget'].isnull()]
BudgetNotNull = data[data['budget'].notnull()]

然后,根据 BudgetNotNull 数据集计算每种类型的平均预算。

budget_of_genre = BudgetNotNull.groupby('genres')['budget'].mean()

在此处输入图像描述

最后,我想根据它的类型填写 BudgetNull 的预算。

在此处输入图像描述

例如,“海洋男孩”是一部动作片,因此,填写budget_of_genre['Action']。

我如何通过 for 循环做到这一点?还是有其他方法?

1个回答

使用如下变换可以工作:

df["budget"] = df.groupby("genres")["budget"].transform(lambda x: x.fillna(x.mean()))

平均值计算在其计算中仅使用非空值。因此,每个组的非空值的平均值被归入同一组的空值。

另请参阅Stack Overflow 上的这个问题