如何median为泰坦尼克号数据集填充类似行的缺失值?
我有一Age列有 80 个缺失值,我想通过取其他列的相似行的中位数来填充这些缺失值。['SibSp', 'Parch', 'Pclass']
假设这个例如:
Age SibSp Parch Pclass
0 28 2 1 2
1 NaN 2 1 2
2 30 3 3 1
3 40 4 3 3
4 30 2 1 2
5 40 2 1 2
现在我想,以填补NaN在Age考虑其他三列类似的值列。在这种情况下,我有三行样本值作为第 1 行。
Age SibSp Parch Pclass
0 28 2 1 2
4 30 2 1 2
5 40 2 1 2
Agecol的中位数是 30。所以用 30 填充 NaN。
所需的输出。
Age SibSp Parch Pclass
0 28 2 1 2
1 30 2 1 2 # Fill with median of those above three rows.
2 30 3 3 1
3 40 4 3 3
4 30 2 1 2
5 40 2 1 2
这是我写的东西,但它不起作用。
# Filling missing values Of Age.
for i in combined.Age[combined.Age.isna()].index.tolist():
age_med = combined.Age.median()
mask1 = combined.SibSp.eq(combined.iloc[i].SibSp)
mask2 = combined.Parch.eq(combined.iloc[i].Parch)
mask3 = combined.Pclass.eq(combined.iloc[i].Pclass)
age_pred = combined.Age[mask1 & mask2 & mask3].median()
combined.iloc[i]['Age'] = age_pred
我确信有更好的方法来使用它groupby或其他东西,但我无法弄清楚。任何人都可以帮忙吗?
谢谢你。
繁星淼淼
相关分类