pandas query查询函数,Pandas DataFrame.query()详解及示例(16)

作者 : 慕源网 本文共3021个字,预计阅读时间需要8分钟 发布时间: 2021-12-1 共967人阅读

Pandas DataFrame.query() 介绍

query() 方法可以根据某些特定条件从数据框中查询必要的列和行。因此,它提供了一种灵活的方法来使用布尔表达式查询与数据框关联的列。

本文是Python Pandas教程系列的一部分,您可以点击Python Pandas使用教程查看所有。

语法:

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

Pandas DataFrame.query() 的参数和说明

以下是 Pandas DataFrame.query() 的参数:

参数 描述
expr expression 参数是放置要查询的表达式的位置。根据此处公式化的表达式得出结果。
inplace 用于判断是否需要在数据所在位置进行操作。所以这意味着 query() 方法的结果是否需要保留在应用它的当前数据帧上。这又是一个布尔变量,如果将其设置为 true,则 query() 更改将应用​​于当前数据帧本身,如果将此参数分配为 false,则不会对当前数据帧应用任何更改,一个等于关系可以是用于将更新的数据帧拉入不同的数据帧。

Pandas DataFrame.query() 实现示例

以下是 Pandas DataFrame.query() 的示例:

示例#1

代码:

import pandas as pd
Core_Dataframe = pd.DataFrame({'Emp_No': ['Emp1','Emp2','Emp3','Emp4'],
'Employee_Name':  ['Arun', 'selva', 'rakesh', 'arjith'],
'Employee_dept': ['CAD', 'CAD', 'DEV', 'CAD']})
print("   THE CORE DATAFRAME ")
print(Core_Dataframe)
print("")
Queried_Dataframe = Core_Dataframe.query('Employee_dept == "CAD"')
print("   THE QUERIED DATAFRAME ")
print(Queried_Dataframe)
print("")

输出:

说明:在本例中,首先制定了核心数据帧。pd.dataframe() 用于制定数据帧。数据框的每一行都连同它们的列名一起插入。一旦数据框被完全公式化,它就会被打印到控制台上。我们可以注意到,在这个实例中,数据框包含员工编号、员工姓名和员工部门等详细信息。从制定的数据帧中,所有属于员工部门“CAD”的员工都被单独查询并派生到一个新的数据帧中。查询的新数据帧被打印到控制台。

示例#2

代码:

import pandas as pd
Core_Dataframe = pd.DataFrame({'A':  [ 11, 6, 11, 15, 31, 26],
'B':  [2, 7, 12, 17, 22, 27],
'C':  [3, 8, 13, 18, 23, 28],
'D':  [4, 9, 14, 19, 24, 29],
'E':  [5, 10, 15, 20, 25, 30]})
print("   THE CORE DATAFRAME ")
print(Core_Dataframe)
print("")
Queried_Dataframe = Core_Dataframe.query('A > B')
print("   THE QUERIED DATAFRAME ")
print(Queried_Dataframe)
print("")

输出:

说明:在本例中,首先制定了核心数据帧。pd.dataframe() 用于制定数据帧。数据框的每一行都连同它们的列名一起插入。一旦数据框被完全公式化,它就会被打印到控制台上。我们可以注意到,在这种情况下,数据帧包含一组随机的数字和与其关联的列的字母值。此处查询核心数据框以提取“A”列中的值大于“B”列中的值的所有行。我们注意到核心数据帧中的 2 行满足此条件并打印到控制台上。

示例 #3

代码:

import pandas as pd
Core_Dataframe = pd.DataFrame( {
'name': ['Alan Xavier', 'Annabella', 'Janawong', 'Yistien', 'Robin sheperd', 'Amalapaul', 'Nori'],
'city': ['california', 'Toronto', 'ontario', 'Shanghai',
'Manchester', 'Cairo', 'Osaka'],
'age': [51, 38, 23, 64, 18, 57, 47],
'py_score': [82.0, 73.0, 81.0, 30.0, 48.0, 92.0, 84.0] })
print("   THE CORE DATAFRAME ")
print(Core_Dataframe)
print("")
Queried_Dataframe = Core_Dataframe.query('age > 50 and py_score> 80')
print("   THE QUERIED DATAFRAME ")
print(Queried_Dataframe)
print("")

输出:

说明:在本例中,首先制定了核心数据帧。pd.dataframe() 用于制定数据帧。数据框的每一行都连同它们的列名一起插入。一旦数据框被完全公式化,它就会被打印到控制台上。我们可以注意到,在这种情况下,数据帧包含随机人员信息和这些人的 py_score 值。此数据框中使用的关键列是名称、年龄、城市和 py-score 值。这里所有的值是人的年龄大于 50 并且 pyscore 大于 80 被查询并制定为单独的数据框。制定的数据帧被打印到控制台上。

示例 #4

代码:

import pandas as pd
Core_Dataframe = pd.DataFrame({'A':  [ 11.23, 6.66, 11.55, 15.44, 21.44, 26.4 ],
'B':  [ 2.345, 745.5, 12.4, 17.34, 22.35, 27.44 ],
'C':  [ 32.67, 8, 13.4, 18, 23, 28.44 ],
'D':  [ 4.6788, 923.3, 14.5, 19, 24, 29.44 ],
'E':  [ 5.3, 10.344, 155.556, 20.6775, 25.4455, 30.3 ]})
print("   THE CORE DATAFRAME ")
print(Core_Dataframe)
print("")
Core_Dataframe.query(' A > B and B < D', inplace=True)
print("   THE CORE DATAFRAME AFTER QUERYING ")
print(Core_Dataframe)
print("")

输出:

说明:在本例中,首先制定了核心数据帧。pd.dataframe() 用于制定数据帧。数据框的每一行都连同它们的列名一起插入。一旦数据框被完全公式化,它就会被打印到控制台上。本例中使用了典型的浮动数据集。此处查询核心数据框以提取“A”列中的值大于“B”列中的值的所有行,并根据“B”列大于“D”列添加另外一个条件被查询。我们注意到只有来自核心数据帧的行满足这个条件,并且它被打印到控制台上。在这里,因为 inplace 选项被设置为 true,所以在查询过程维护到核心数据帧本身之后的所有更改。

结论

Pandas 可以通过多种方式有条件地从数据框中过滤数据。在可用的技术中,如 where()、loc等。 query() 方法绝对是过滤数据帧的有效且简单的方法。


慕源网 » pandas query查询函数,Pandas DataFrame.query()详解及示例(16)

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录