isnull() 方法如何返回数据框中缺少的所有行



我是Python的新手,只是想弄清楚这一小部分代码是如何工作的。希望在没有示例数据框的情况下可以轻松解释。

我的数据框名为 df_train ,包含一个名为 Age 的列。此列NaN 177 条记录。

我提交以下代码...

df_train[df_train['Age'].isnull()]

。并返回所有缺失的记录。

现在,如果我提交df_train['Age'].isnull(),我得到的只是一个布尔值列表。然后,数据框对象如何将此布尔列表转换为我们实际想要的行?

我不明白如何将布尔列表再次传递到数据框只会产生我们需要的 177 条记录 - 有人可以为新手提供 ELI5 吗?

您必须创建要使用的dataframe的子集。假设您只想使用那些未null df_train['Age']的行。在这种情况下,您必须选择

df_train_to_use = df_train[df_train['Age'].isnull() == False]

现在,您可以交叉检查您可能想要使用的任何其他列,并具有类似的nulls

 df_train['Column_name'].isnull().any()

如果这返回True,您可以继续用默认值、平均值、零或任何您喜欢的方法替换 null,通常用于机器学习程序。

df_train['Column_name'].dropna()
df_train['Column_name'].fillna('') #for strings
df_train['Column_name'].fillna(0) #for int
df_train['Column_name'].fillna(0.0) #for float 

等。

我希望这能帮助您解释。

最新更新