Python|使用 Pandas .query() 方法过滤数据
Python是一种用于进行数据分析的出色语言,主要是因为以数据为中心的Python包的奇妙生态系统。 Pandas是使导入和分析数据变得更加容易的软件包之一。
分析数据需要大量的过滤操作。 Pandas 提供了许多过滤数据框的方法, Dataframe.query()
就是其中之一。
Syntax: DataFrame.query(expr, inplace=False, **kwargs)
Parameters:
expr: Expression in string form to filter data.
inplace: Make changes in the original data frame if True
kwargs: Other keyword arguments.
Return type: Filtered Data frame
要下载使用的 CSV 文件,请单击此处。
注意: Dataframe.query()
方法仅在列名没有任何空格时才有效。所以在应用该方法之前,列名中的空格被替换为'_'
示例 #1:单一条件过滤
在这个例子中,数据是根据单个条件过滤的。在应用 query() 方法之前,列名中的空格已替换为“_”。
# importing pandas package
import pandas as pd
# making data frame from csv file
data = pd.read_csv("employees.csv")
# replacing blank spaces with '_'
data.columns =[column.replace(" ", "_") for column in data.columns]
# filtering with query method
data.query('Senior_Management == True', inplace = True)
# display
data
输出:
如输出图像所示,数据现在只有 Senior Management 为 True 的行。
示例 #2:多条件过滤
在此示例中,已根据多个条件过滤了数据框。在应用 query() 方法之前,列名中的空格已替换为“_”。
# importing pandas package
import pandas as pd
# making data frame from csv file
data = pd.read_csv("employees.csv")
# replacing blank spaces with '_'
data.columns =[column.replace(" ", "_") for column in data.columns]
# filtering with query method
data.query('Senior_Management == True
and Gender =="Male" and Team =="Marketing"
and First_Name =="Johnny"', inplace = True)
# display
data
输出:
如输出图像所示,根据应用的过滤器,只返回了两行。