📅  最后修改于: 2023-12-03 15:13:03.916000             🧑  作者: Mango
在 Pandas 中,.isin
函数用于筛选 DataFrame/DataSeries 中包含特定值的行/列。那么在 Pandas 中,有没有对应的函数来筛选 DataFrame/DataSeries 中不包含特定值的行/列呢?答案是肯定的,这个函数就是 .notnull()
。
.notnull()
.notnull()
函数用于返回一个布尔值的 DataFrame/DataSeries,其中每一个元素表示其是否为非空值。这就意味着,如果某个元素不为空,那么它的值就为 True,否则就为 False。我们可以使用 .notnull()
函数来筛选 DataFrame/DataSeries 中不为空的行/列。
.notnull()
筛选 DataFrame 中不为空的行下面的代码演示了如何使用 .notnull()
函数筛选 DataFrame 中不为空的行:
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({
"Name": ["John", "Jane", "Alice", "Bob", "David"],
"Age": [28, 35, None, 20, 42],
"Salary": [50000, None, 60000, 40000, 80000]
})
# 使用 .notnull() 筛选不为空的行
df_notnull = df[df.notnull().all(axis=1)]
# 打印结果
print(df_notnull)
这段代码输出的结果是:
Name Age Salary
0 John 28.0 50000.0
3 Bob 20.0 40000.0
4 David 42.0 80000.0
可以看到,只有 df
中第 2 行不包含任何值,所以在使用 .notnull()
之后就被过滤掉了。
.notnull()
筛选 DataFrame 中不为空的列类似地,下面的代码演示了如何使用 .notnull()
函数筛选 DataFrame 中不为空的列:
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({
"Name": ["John", "Jane", "Alice", "Bob", "David"],
"Age": [28, 35, None, 20, 42],
"Salary": [50000, None, 60000, 40000, 80000]
})
# 使用 .notnull() 筛选不为空的列
df_notnull = df.loc[:, df.notnull().all()]
# 打印结果
print(df_notnull)
这段代码输出的结果是:
Name
0 John
1 Jane
2 Alice
3 Bob
4 David
可以看到,只有 Age
和 Salary
这两列包含有空值,所以在使用 .notnull()
之后就被过滤掉了,只剩下了 Name
这一列。
.notnull()
函数是 .isin()
函数的对立面,它可以用于筛选 DataFrame/DataSeries 中不包含特定值的行/列。.notnull()
函数筛选出来的结果都是包含非空值的行/列。