📜  .isin pandas 的对立面 - Python (1)

📅  最后修改于: 2023-12-03 15:13:03.916000             🧑  作者: Mango

.isin Pandas 的对立面 - Python

在 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

可以看到,只有 AgeSalary 这两列包含有空值,所以在使用 .notnull() 之后就被过滤掉了,只剩下了 Name 这一列。

总结

.notnull() 函数是 .isin() 函数的对立面,它可以用于筛选 DataFrame/DataSeries 中不包含特定值的行/列。.notnull() 函数筛选出来的结果都是包含非空值的行/列。