10快速入门Query函数使用的Pandas的查询示例

pandas.的query函数为我们提供了一种编写查询过滤条件更简单的方法,特别是在的查询条件很多的时候,在本文中整理了10个示例,掌握着10个实例你就可以轻松的使用query函数来解决任何查询的问题。

首先,将数据集导入pandas DataFrame - df

  1. import pandas as pd
  2. df = pd.read_csv("Dummy_Sales_Data_v1.csv")
  3. df.head()

它是一个简单的9999 x 12数据集,是使用Faker创建的,我在最后也会提供本文的所有源代码。

在开始之前,先快速回顾一下pandas -中的查询函数query。查询函数用于根据指定的表达式提取记录,并返回一个新的DataFrame。表达式是用字符串形式表示的条件或条件的组合。

PANDAS DATAFRAME(.loc和.iloc)属性用于根据行和列标签和索引提取数据集的子集。因此,它并不具备查询的灵活性。而括号符号[]可以灵活地基于条件过滤数据帧,但是如果条件很多的话编写代码是繁琐且容易出错的。

pandas query()函数可以灵活地根据一个或多个条件提取子集,这些条件被写成表达式并且不需要考虑括号的嵌套

在后端pandas使用eval()函数对该表达式进行解析和求值,并返回表达式被求值为TRUE的数据子集或记录。所以要过滤pandas DataFrame,需要做的就是在查询函数中指定条件即可。

使用单一条件进行过滤

在单个条件下进行过滤时,在Query()函数中表达式仅包含一个条件。返回的输出将包含该表达式评估为真的所有行。

示例1

提取数量为95的所有行,因此逻辑形式中的条件可以写为 -

  1. Quantity == 95

需要将条件写成字符串,即将其包装在双引号“”中。query代码如下

  1. df.query("Quantity == 95")

看起来很简单。它返回了数量为95的所有行。如果用一般查询的方式可以写成:

  1. df [df [“Quantity”] == 95]

但是,如果想在同一列中再包含一个条件怎么办?

它在括号符号中又增加了一对方括号,如果是3个条件或者更多条件呢?那么他就变得难以管理。这就是Query的优势了。

在多个条件过滤

一个或多个条件下过滤,query()的语法都保持不变

完整文章:

https://avoid.overfit.cn/post/2f07763913a948a5b074e2430b8b2b8e

posted @   deephub  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示