如何删除数据集中所有值均为NA的行?
全NA行删除实现方案
以下是不同工具环境下的对应实现方法:
R 语言
tidyverse 方案
使用dplyr包的筛选逻辑,适配任意列数:
library(dplyr) # 替换df为你的数据集变量名 df_clean <- df %>% # 保留至少存在一个非NA值的行 filter(if_any(everything(), ~!is.na(.x)))
基础R 方案
无需加载第三方包:
# 替换df为你的数据集变量名 df_clean <- df[rowSums(is.na(df))!= ncol(df), ]
Python(Pandas)
Pandas内置的dropna方法直接提供了对应参数,不需要额外逻辑:
import pandas as pd # 替换df为你的数据集变量名,how='all'指定仅删除所有值均为NA的行 df_clean = df.dropna(how='all')
Excel
- 新增一列作为辅助列,第一行数据(假设为第2行)输入公式
=COUNTA(A2:C2),将A2:C2替换为你实际的全量数据列范围 - 将公式下拉填充到所有行,辅助列值为0的行即为全NA行
- 筛选辅助列值为0的行,直接删除后删掉辅助列即可
SQL
通用写法(适配所有数据库)
SELECT * FROM 你的表名 -- 列数多的话依次补全所有列的IS NOT NULL判断即可 WHERE 列1 IS NOT NULL OR 列2 IS NOT NULL OR 列3 IS NOT NULL
PostgreSQL 简化写法
SELECT * FROM 你的表名 WHERE NOT (你的表名 IS NULL);
内容的提问来源于stack exchange,提问作者cjolson0612
相关产品推荐
相关产品推荐

