简介:本文将介绍如何使用多种条件筛选pandas DataFrame,包括多条件过滤和范围过滤。我们将通过实例来演示这些方法,并解释其工作原理。
在使用pandas进行数据分析时,经常需要根据多个条件筛选数据。以下是一些常用的方法来实现多条件筛选。
一、多条件过滤
在pandas中,可以使用query()方法或loc函数来进行多条件筛选。这些方法允许你使用逻辑运算符(如&和|)来组合多个条件。
query()方法query()方法允许你使用字符串格式的表达式来筛选数据。下面是一个示例,展示如何筛选出a列等于4且b列不等于2的行:注意:在
df_filtered = df.query('a == 4 & b != 2')
query()方法中,等于过滤使用两个等号==,而不是一个。loc函数loc函数来筛选数据。下面是一个示例,展示如何使用loc函数筛选出满足相同条件的行:或者使用链式索引:
df_filtered = df.loc[(df['a'] == 4) & (df['b'] != 2)]
这两种方法都可以达到相同的效果,你可以根据自己的喜好选择其中一种。
df_filtered = df[df['a'] == 4 & df['b'] != 2]
query()方法和范围运算符query()方法中使用范围运算符(如<, >, <=, >=)来筛选出满足范围的行。下面是一个示例,展示如何筛选出STK_ID列值在60000到70000之间的行:
rpt_filtered = rpt.query('60000 < STK_ID < 70000')
isin()函数和列表推导式isin()函数。下面是一个示例,展示如何筛选出包含特定股票代码的行:在这个例子中,我们首先创建一个包含特定股票代码的列表,然后使用
stock_codes = ['600809', '600141', '600329']df_stocks = df[df['STK_ID'].isin(stock_codes)]
isin()函数和列表推导式来筛选出包含这些股票代码的行。这将返回一个新的DataFrame,其中包含满足条件的行。