我是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
等。
我希望这能帮助您解释。