问题是:让我们从Kaggle中获取Titanic数据集 . 我的数据框有“Pclass”,“Sex”和“Age”列 . 我需要在“年龄”栏填写NaN,其中某个组的中位数 . 如果是一等女性,我想用一年级女性的中位数填写她的年龄,而不是整个年龄段的中位数 .
问题是如何在某个切片中进行此更改?
我试过了:
data['Age'][(data['Sex'] == 'female')&(data['Pclass'] == 1)&(data['Age'].isnull())].fillna(median)
其中“中位数”是我的值,但没有任何变化“inplace = True”没有帮助 .
非常感谢!
2 回答
我相信你需要通过面具过滤并分配回来:
同样如下:
编辑:
如果需要用中位数替换所有组
NaN
s:如果你想为每个组做同样的事情,你可以使用这个技巧
UPDATE:
在我的机器上运行它(就像之前没有重命名)
虽然掩码解决方案采取:
@jezrael解决方案更快