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 任务: