python pandas query的使用方法

  • Post category:Python

Python Pandas Query 的使用方法

在 Pandas 中,query 函数被用于从 DataFrame 中筛选行,通过执行布尔逻辑来过滤 DataFrame 中的数据,query 函数提供了一个灵活和简洁的方法来执行此操作。

Pandas库的query()函数可以帮助我们通过传递一些布尔表达式来从DataFrame中选择行。在下面的部分中,我们将详细讨论如何使用query()函数进行数据筛选。

query 函数的语法

我们可以使用如下所示的语法来编写Pandas的query函数:

DataFrame.query(self, expr, inplace=False, **kwargs)

参数解释:

  • expr:查询表达式字符串
  • inplace:如果inplace设置为 True,则返回 None,否则返回新的 DataFrame。

示例1:query函数实现数据筛选

下面的代码将展示如何实现数据筛选:

import pandas as pd

data = {"name": ["Alice", "Bob", "Charlie", "David", "Emily"],
        "sex": ["female", "male", "male", "male", "female"],
        "age": [25, 30, 35, 40, 45],
        "salary": [5000, 6000, 7000, 8000, 9000]}

df = pd.DataFrame(data)

# 使用query函数过滤年龄大于30岁的数据
df_filtered = df.query("age > 30")
print(df_filtered)

运行以上代码,即可得到如下输出:

       name   sex  age  salary
2  Charlie  male   35    7000
3    David  male   40    8000
4    Emily  female   45    9000

示例2:query函数与多个条件

我们可以使用query函数结合 andor 操作符来筛选数据。

下面的代码将展示如何实现多条件筛选:

import pandas as pd

data = {"name": ["Alice", "Bob", "Charlie", "David", "Emily"],
        "age": [25, 30, 35, 40, 45],
        "city": ["Shanghai", "Beijing", "Shanghai", "Beijing", "Shanghai"]}

df = pd.DataFrame(data)

# 使用query函数过滤年龄在35岁以上和所在城市是上海的数据
df_filtered = df.query("age >= 35 and city == 'Shanghai'")
print(df_filtered)

运行以上代码,即可得到如下输出:

       name  age      city
2  Charlie   35  Shanghai
4    Emily   45  Shanghai

至此,我们已经讲解了如何使用 Python Pandas 的 query 函数来进行数据筛选。