Skip to main content
 首页 » 编程设计

python之Pandas:如果超过一半是 NaN,则删除行和列

2025年05月04日13www_RR

我有一个名为 df 的 Pandas DataFrame,它有 1,460 行和 81 列。我想删除所有至少有一半条目为 NaN 的列,并对行执行类似的操作。

根据 Pandas 文档,我尝试这样做:

train_df.shape //(1460, 81) 
train_df.dropna(thresh=len(train_df)/2, axis=1, inplace=True) 
train_df.shape //(1460, 77) 

这是正确的做法吗?它似乎删除了 4 列,但我很惊讶。我本以为 len(train_df) 会得到行数,所以我将错误的值传递给了 thresh...?

我如何对行执行同样的操作(删除至少一半列为 NaN 的行)?

谢谢!

请您参考如下方法:

我猜你做对了,但忘了添加 .index。 该行应如下所示:

train_df.dropna(thresh=len(train_df.index)/2, axis=1, inplace=True) 

希望对您有所帮助。