pandas query查询函数,Pandas DataFrame.query()详解及示例(16)
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() 方法绝对是过滤数据帧的有效且简单的方法。
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!