sql 判断一个字段值为null时循环赋值_Python Pandas可以像SQL那样,进行数据筛选统计...

本文介绍了如何使用Pandas实现SQL中的数据查询操作,包括字段查询、条件过滤(WHERE)、排序(ORDER BY)、更新(UPDATE)、分组统计(GROUP BY)和数据合并(UNION、JOIN)。通过示例展示了如何在Pandas中完成类似SQL的条件筛选、空值判断、多条件查询、排序、更新记录以及合并与连接查询。
摘要由CSDN通过智能技术生成

相对于学习Pandas各种数据筛选操作,SQL语法显得更加简洁清晰,若能够将SQL语法与Pandas中对应的函数的使用方法关联起来,对于我们应用Pandas进行数据筛选来讲无疑是一个福音。

本文通过Pandas实现SQL语法中条件过滤、排序、关联、合并、更新、删除等简单及复杂操作,使得我们对方法的理解更加深刻,更加得心应手。


演示数据集

本文采用安德森鸢尾花卉(iris)数据集进行演示,iris数据集包含150个样本,对应数据集的每行数据。每行数据包含每个样本的四个特征和样本的类别信息,因此iris数据集是一个150行*5列的二维表。

我们可以 UCI Iris dataset 获取或者使用 from sklearn.datasets import load_iris 方式获取,为了演示方便我们只取其中10行数据,如下:

a88af27e28fa907c5e00301632477f9a.png

接下来,就让我们一起学习一下,如何Pandas实现SQL语法中条件过滤、排序、关联、合并、更新、删除等数据查询操作。

字段查询 SELECT

SELECT sl, sw, pl, pw FROM iris LIMIT 2;

如上SQL实现返回每行记录的 sl,sw,pl,pw 字段,仅返回2行记录。我们使用Pandas实现如上SQL的功能,代码如下:

import pandas as pdiris = pd.read_excel(io="iris.xlsx",              sheet_name='iris',              usecols=["sl", "sw", "pl", "pw", "classes"])search = iris[["sl", "sw", "pl", "pw"]].head(2)print(search)# 执行上述代码,输出结果为:    sl   sw   pl   pw0  5.1  3.5  1.4  0.21  4.9  3.0  1.4  0.2

简单的条件过滤查询 WHERE

SELECT * FROM iris WHERE classes = 1 LIMIT 2;

如上SQL实现了查询满足classes=1的记录,并返回2行。我们使用Pandas实现该SQL,代码如下:

import pandas as pdiris = pd.read_excel(io="iris.xlsx",              sheet_name='iris',              usecols=["sl", "sw", "pl", "pw", "classes"])search = iris[iris["classes"]==1].head(2)print(search)# 执行上述代码,输出结果为:    sl   sw   pl   pw  classes3  6.8  2.8  4.8  1.4        14  6.7  3.0  5.0  1.7        1

多条件的与或过滤查询 WHERE AND|OR

与关系 &

SELECT * FROM iris WHERE classes = 1 AND pl >= 5 LIMIT 2;

如上SQL实现查询同时满足classes=1 和 pl >=5 两个条件的记录,并返回2行。我们使用Pandas实现该SQL,代码如下:

import pandas as pdiris = pd.read_excel(io="iris.xlsx",                     sheet_name='iris',                     usecols=["sl", "sw", "pl", "pw", "classes"])search = iris[    (iris["classes"] == 1) &              (iris["pl"] >= 5)              ].head(2)print(search)# 执行上述代码,输出结果为:    sl   sw   pl   pw  classes4  6.7  3.0  5.0  1.7        1

或关系 |

SELECT * FROM iris WHERE sl >= 5 OR pl >=5 LIMIT 2;

如上SQL实现查询满足 sl >=5 或者 pl >=5 任一条件的记录,返回2行。我们使用Pandas实现该SQL,代码如下:

import pandas as pdiris = pd.read_excel(io="iris.xlsx",                     sheet_name='iris',                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值