📜  Python|使用 Pandas .query() 方法过滤数据

📅  最后修改于: 2022-05-13 01:55:27.088000             🧑  作者: Mango

Python|使用 Pandas .query() 方法过滤数据

Python是一种用于进行数据分析的出色语言,主要是因为以数据为中心的Python包的奇妙生态系统。 Pandas是使导入和分析数据变得更加容易的软件包之一。

分析数据需要大量的过滤操作。 Pandas 提供了许多过滤数据框的方法, Dataframe.query()就是其中之一。

要下载使用的 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

输出:
如输出图像所示,根据应用的过滤器,只返回了两行。