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

标签 python pandas

我有一个名为 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)

希望对您有所帮助。

关于python - Pandas:如果超过一半是 NaN,则删除行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46433588/

相关文章:

python - 如何降低 Pandas 数据框中的所有元素?

python - Pandas v0.17.0 : AttributeError: 'unicode' object has no attribute 'version'

python - 我应该使用MySQL锁表还是有更好的解决方案?

python - Notepad++ 找不到文件路径

python - Django是同步的还是异步的?

python - 在 Pandas 数据框中分配新值的更快方法

python - Pandas 组中的唯一值

python - 在 Pandas 中将 "year"和 "week of year"列转换为 "date"

python - 将鼠标悬停在 Selenium 上后如何单击可见的元素?

python - 为什么 round(5/2) 返回 2?