Pandas查询示例:10个Query函数快速入门

图片[1]-Pandas查询示例:10个Query函数快速入门-山海云端论坛

在本文中,我们将介绍Pandas的query函数,这是一种简化编写查询和过滤条件的方法。尤其是在处理具有多个查询条件的情况下,query函数可以大大简化我们的代码。我将为您提供10个示例,掌握这些示例,您就能够轻松地使用query函数解决各种数据查询问题。

首先,让我们将数据集导入Pandas DataFrame中,命名为df:

<code>import pandas as pd df = pd.read_csv("Dummy_Sales_Data_v1.csv") df.head()</code>

这是一个包含9999行和12列的简单数据集,是使用Faker库创建的。在本文的最后,我将提供所有示例的源代码。

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

Pandas的DataFrame属性.loc和.iloc用于根据行和列标签或索引提取数据集的子集。虽然这些方法在数据子集的提取上非常灵活,但在处理多个查询条件时可能会显得繁琐。而用方括号[]进行数据帧过滤的方法则会更加繁琐,尤其是当有多个条件时。

而Pandas的query函数可以根据一个或多个条件提取子集,这些条件被写成表达式,无需考虑括号的嵌套。

单一条件过滤示例

在单一条件下进行过滤时,查询表达式中只包含一个条件。返回的输出将包含所有行,其中该表达式评估为True。

示例1:

提取数量为95的所有行,查询表达式可以写成:

<code>df.query("Quantity == 95")</code>

这个查询将返回所有数量为95的行。相同的查询也可以写成:

<code>df[df["Quantity"] == 95]</code>

但是,如果想在同一列中包含另一个条件,该怎么办呢?接下来我们将展示如何处理多个条件的查询。

多个条件过滤示例

当有两个或多个条件需要同时满足时,query函数的语法保持不变。我们需要指定两个或多个条件来进行过滤,可以使用and和or关键字。

示例2:

查询数量为95且单位价格为182的所有行:

<code>df.query("Quantity == 95 and `UnitPrice(USD)` == 182")</code>

请注意,列名包含空格或特殊字符时,需要使用反引号“来包裹列名。

示例3:

查询数量为95或单位价格为182的所有行:

<code>df.query("Quantity == 95 or `UnitPrice(USD)` == 182")</code>

除了and和or关键字外,我们还可以使用|代替or关键字。

示例4:

查询数量不等于95的所有行:

<code>df.query("Quantity != 95")</code>

文本列过滤示例

对于文本列的过滤,条件是列名与字符串的比较。

示例5:

查询状态为“未发货”的所有记录:

<code>df.query("Status == 'Not Shipped'")</code>

数学计算在查询中的应用示例

数学操作可以在查询表达式中进行加减乘除等计算。

示例6:

查询运费的两倍小于50的行:

<code>df.query("Shipping_Cost*2 < 50")</code>

内置函数在查询中的应用示例

Python内置函数,如SQRT()、ABS()、Factorial()、EXP()等,也可以在查询表达式中使用。

示例7:

查找单位价格的平方根大于15的行:

<code>df.query("sqrt(`UnitPrice(USD)`) > 15")</code>

日期时间列过滤示例

对于日期时间值的过滤,需要将列转换为dateTime64 [ns]数据类型,并使用DT提取器进行日期时间操作。

示例8:

提取八月份的所有记录:

<code>df.query("OrderDate.dt.month == 8")</code>

示例9:

提取2021年8月15日及之后的所有订单:

<code>df.query("OrderDate >= '2021-08-15'")</code>

示例10:

结合多个条件进行日期时间过滤:

<code>df.query("OrderDate >= '2021-08-15' and OrderDate <= '2021-08-31' and Status == 'Delivered'")</code>

结论

通过阅读本文,希望您能更熟练地使用Pandas的Query函数进行数据查询和过滤。Query函数能够极大地简化我们的代码,并且能够处理各种复杂的查询条件。我每天都在使用Query函数,相信您也会在日常数据处理中受益匪浅。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容