Pandas:按不等于特定值的列进行过滤


您可以使用以下方法来过滤其中列不等于特定值的 pandas DataFrame:

方法 1:过滤不等于特定值的列

 #filter rows where team column is not equal to 'Nets'
df_filtered = df[df[' team '] != ' Nets ']

方法二:当列不等于几个特定值时进行过滤

 #filter rows where team column is not equal to 'Nets', 'Mavs' or 'Kings'
df_filtered = df[ ~ df[' team ']. isin ([' Nets ', ' Mavs ', ' Kings '])]

以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Nets', 'Nets', 'Heat', 'Heat', 'Kings'],
                   ' points ': [22, 28, 35, 34, 29, 28, 23]})

#view DataFrame
print (df)

    team points
0 Mavs 22
1 Mavs 28
2 Nets 35
3 Nets 34
4 Heat 29
5 Heat 28
6 Kings 23

示例 1:过滤列不等于特定值的位置

我们可以使用以下语法来过滤 DataFrame 以仅包含team列不等于“Nets”的行:

 #filter rows where team column is not equal to 'Nets'
df_filtered = df[df[' team '] != ' Nets ']

#view filtered DataFrame
print (df_filtered)

    team points
0 Mavs 22
1 Mavs 28
4 Heat 29
5 Heat 28
6 Kings 23

请注意,球队名称为“Nets”的每一行均已从 DataFrame 中过滤掉。

注意:符号!=在 pandas 中表示“不等于”。

示例 2:过滤列不等于多个特定值的情况

我们可以使用以下语法来过滤 DataFrame,使其仅包含球队列不等于“Nets”、“Mavs”或“Kings”的行:

 #filter rows where team column is not equal to 'Nets', 'Mavs' or 'Kings'
df_filtered = df[ ~ df[' team ']. isin ([' Nets ', ' Mavs ', ' Kings '])]

#view filtered DataFrame
print (df_filtered)

   team points
4 Heat 29
5 Heat 28

请注意,球队名称为“Nets”、“Mavs”或“Kings”的每一行均已从 DataFrame 中过滤掉。

注意:符号~在pandas中代表“no”。

文档:您可以在此处找到 pandas isin()函数的完整文档。

其他资源

以下教程解释了如何执行其他常见的 panda 任务:

Pandas:如何向数据透视表添加过滤器
Pandas:如何过滤“不包含”
Pandas:如何过滤包含特定字符串的行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注