在Python中写SQL,使用pandasql库实现SQL数据查询

yumo6663个月前 (03-26)技术文章53

在pandas中实现SQL查询其实很简单,通常我们在SQL软件中写SQL,在Python软件中写Python,但是,我要是在Python中写SQL能否实现呢?要知道Python可是万能的,Python除了不能生孩子,其他事都能做。

这里给大家介绍pandasql库,它居然能在Python中写SQL,而且SQL语法在Python中完全支持,这就是下文我们详细介绍的pandasql库,在Python中写SQL能够做到手写自如,下面一起来学习~

1、pandasql库安装

要使用pandasql库的功能,需要提前下载pandasql库,这个库跟pandas库很像,只是末尾缀加了sql,通常下载库,我们需要到终端输入pip install pandasql进行下载,这里只需要在代码行里加一个感叹号"!",就可以直接下载成功。

!pip install pandasql

下载库后,导入pandasql库进行使用。

#导入pandasql库
import pandasql as sql

2、pandasql库使用

为了更好地演示pandasql库如何使用,这里首先导入我们的数据文件,使用pandas库导入本文所使用的电影文件数据。

import pandas as pd
df=pd.read_excel(r'C:\Users\尚天强\Desktop\数据合并.xlsx')

#重命名
df.rename(columns={'累计票房(万)':'累计票房'}, inplace = True)
df.head()

其次导入pandasql库,SQL运行都需要借助pandasql库,我们使用的是sql.sqldf(""" *** """)命令,其中***就是你要写的SQL语句,写SQL不难,很容易入门,只要将SQL语句写入到括号内,即可实现数据查询。

import pandasql as sql

导入pandasql库后,这里需要将电影的累计票房分为'超低票房'、'低票房'、'中等票房'、'高票房'、'超高票房',使用case when进行分组,以end结尾,成功实现在pandas中使用case when查询,查询结果如下所示。

#对电影的累计票房使用CASE WHEN分组
sql.sqldf("""select 电影名称,电影导演,电影主演,累计票房,
case
when 累计票房 < 100000 then '超低票房'
when 累计票房 < 200000 then '低票房'
when 累计票房 < 300000 then '中等票房'
when 累计票房 < 400000 then '高票房'
else '超高票房'
end as '电影票房分组' from df
where 累计票房 is not null;""")

如果要查询不同电影发行公司电影的票房情况,使用group by函数分组,sum函数做聚合运算,并使用order by函数降序排列,即可查询具体的数据结果。

#不同电影发行公司电影的票房情况,并降序排列
sql.sqldf("""select 发行公司,sum(累计票房) as '累计票房/万' from df
             group by 发行公司
             order by sum(累计票房) desc;""")

要查询每一个电影主演累计票房最高的那一部电影信息,需要做一个子查询,先子查询每一个电影主演累计票房的最大值,然后作为外部where子句的筛选条件。

#查找每一个电影主演累计票房最高的那一部电影信息
sql.sqldf("""select * from df as d
             where d.累计票房=(select max(累计票房) from df
                               where d.电影主演=电影主演)
             order by 累计票房 desc;""")

以上作者使用pandasql库成功实现了在pandas中写SQL的功能,使用sql.sqldf(""" *** """)命令,其中***是SQL查询语句,简单易学,使用SQL命令即可查询结果,更多数据分析知识和内容可以关注我,持续分享~

相关文章

PostgreSQL安装与配置,在CentOS7.9平台安装PostgreSQL12.22

PostgreSQL12是应用比较多的数据库大版本,最新版本是12.22,下面记录一下PostgreSQL12.22安装配置过程,以备不时之需。一.下载PostgreSQL源码包# mkdir /so...

Microsoft SQL Server Enterprise 2019 完整安装详细教程

1、选中“setup.exe”,右键“以管理员身份运行”,这样可以避免了一些权限问题。2、进入“SQL Server 安装中心”窗口,点击左边红色标记的“安装”,再点击右边标记的“全新 SQL Ser...

PLSQL Developer安装详细步骤

一、PL/SQL官网下载官网下载地址:https://www.allroundautomations.com/registered-plsqldev/或者在我的网盘下载链接:https://pan.b...

7款主流sql工具大盘点!

I :DataGripDataGrip,是大名鼎鼎的JetBrains公司出品的,就是那个出品Intellij IDEA的公司。优点:提供多数据库驱动拥有智能的上下文敏感和编码语法提示拥有可视化的表格...

推荐-轻量级-实用mysql客户端链接工具-HeiDiSQL

作为程序员,mysql的客户端链接工具我们可是再熟悉不过来了,都想使用一款比较方便功能齐全的数据库工具,目前比较流行的sqlyoung,navicat等等,sqlyoung和navicat需要破解,开...

SQLYog使用教程

前言从今天开始, 就带各位小伙伴学习数据库技术。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础的小伙伴来学习。全文大...