修改 df 后更新 df 变量列表

Updating a list of df variables after modifying a df

我有一个来自我的 df 的预测变量 (X) 和结果 (y) 变量列表。我的 df 中有 100 多个变量,所以我只关心下面的几个变量。

X = df[['a', 'b', 'c']]

y = df['d']

然后我想为我的任何“X”变量删除所有缺少数据的行,所以我运行这个:

for i in X:

    df = df[df[i].notna()]

这给我留下了一个修改后的 df,在感兴趣的列中没有缺失值。但是,我的列表 X 和 y 仍然填充有旧的 df,因此我不能将它们用作我的模型的输入。虽然我知道我可以首先复制并粘贴我用来创建这些列表的代码以“刷新”代码,但这似乎效率低下。虽然我似乎想不出更好的办法。想法赞赏!

您可以使用 df.dropna:

X = X.dropna()