pandas筛选不为空的行

在数据分析中,经常会遇到需要筛选不为空的行的情况。在pandas中,我们可以使用isnull()方法找出缺失值,然后利用此方法的反操作,即notnull()方法,来筛选不为空的行。
示例数据
为了演示如何筛选不为空的行,我们先创建一个示例数据。假设我们有一个包含学生成绩的数据集,其中可能存在缺失值。
import pandas as pd
data = {
'学号': ['001', '002', '003', '004', '005'],
'姓名': ['小明', '小红', '小刚', '小华', '小李'],
'数学成绩': [90, 85, None, 78, 92],
'语文成绩': [88, None, 95, 82, 90]
}
df = pd.DataFrame(data)
print(df)
运行以上代码,我们可以得到如下示例数据集:
学号 姓名 数学成绩 语文成绩
0 001 小明 90.0 88.0
1 002 小红 85.0 NaN
2 003 小刚 NaN 95.0
3 004 小华 78.0 82.0
4 005 小李 92.0 90.0
筛选不为空的行
接下来,我们将演示如何筛选出不包含缺失值的行。
notnull_df = df[df.notnull().all(axis=1)]
print(notnull_df)
在以上代码中,我们使用notnull().all(axis=1)来筛选不包含缺失值的行。notnull()方法可以判断数据是否为非空,all(axis=1)表示对行进行操作,并且只有当所有列的数据都不为空时才返回True。
运行以上代码,我们可以得到筛选不为空的行的结果:
学号 姓名 数学成绩 语文成绩
0 001 小明 90.0 88.0
3 004 小华 78.0 82.0
4 005 小李 92.0 90.0
可以看到,筛选结果中只包含了没有缺失值的行。
结语
通过本文的介绍,我们学习了如何使用pandas筛选不为空的行。在实际数据分析中,这种操作非常常见,可以帮助我们清洗数据、减少错误。
极客笔记