在泰坦尼克数据集中预测年龄的Nan值

时间:2017-10-27 02:14:48

标签: python machine-learning vectorization

我没有用平均值或类似的东西替换Nan年龄值,而是建议我应该尝试猜测相关人员是否是孩子,然后在数据集中创建一个is child列并添加Nan的已知年龄和可能值的正确值。

所以,我知道如果名字中有先生或夫人,那绝对不是孩子,而如果有主人。或小姐,它可能是也可能不是孩子。我想,如果它是一位大师。或者Miss。和parch列(父子列)非零,这意味着parch计数仅适用于父母,所以也许对于parch> 0和硕士。或小姐。,这是一个孩子和其他情况,它不是一个孩子。

现在我的问题是,我如何在python中编码?到目前为止,我有直接的解决方案,如

df['isChild'] = [1 if x<=18 else 0 for x in df['Age']]

但是这有很多条件,我能想到的只是一个for循环,迭代每个乘客的年龄值为Nan的乘客。有更简单的方法吗?就像编写一个函数而只是传递一个数据框一样,它会自动为每个值评估该函数,比如矢量化实现?

这是数据集https://www.kaggle.com/c/titanic/data

1 个答案:

答案 0 :(得分:1)

您可以使用pandas的apply方法:

def conditions(row):
     if row.Age <= 18:
         return 1
     elif condition:
         ...

df['isChild'] = df.apply(conditions, axis=1)