大家好,本文的所有演示数据,均是基于下方的四张表。下面这四张表大家应该不陌生,这就是网传50道经典MySQL面试题中使用到的几张原表。关于下方各表之间的关联关系,我就不给大家说明了,仔细观察字段名,应该就可以发现。

pandasql 的使用

1)简介

pandas中的DataFrame是一个二维表格,数据库中的表也是一个二维表格,因此在pandas中使用sql语句就显得水到渠成,pandasql使用SQLite作为其操作数据库,同时Python自带SQLite模块,不需要安装,便可直接使用。

这里有一点需要注意的是:使用pandasql读取DataFrame中日期格式的列,默认会读取年月日、时分秒,因此我们要学会使用sqlite中的日期处理函数,方便我们转换日期格式,下方提供sqlite中常用函数大全,希望对你有帮助。

sqlite函数大全http://suo.im/5DWraE

导入相关库:

import pandas as pd
from pandasql import sqldf

2)声明全局变量的2种方式

  • ① 在使用之前,声明该全局变量;

  • ② 一次性声明好全局变量;

① 在使用之前,声明该全局变量
df1 = pd.read_excel("student.xlsx")
df2 = pd.read_excel("sc.xlsx")
df3 = pd.read_excel("course.xlsx")
df4 = pd.read_excel("teacher.xlsx")global df1
global df2
global df3
global df4
query1 = "select * from df1 limit 5"
query2 = "select * from df2 limit 5"
query3 = "select * from df3"
query4 = "select * from df4"sqldf(query1)
sqldf(query2)
sqldf(query3)
sqldf(query4)

部分结果如下:

② 一次性声明好全局变量
df1 = pd.read_excel("student.xlsx")
df2 = pd.read_excel("sc.xlsx")
df3 = pd.read_excel("course.xlsx")
df4 = pd.read_excel("teacher.xlsx")pysqldf = lambda q: sqldf(q, globals())query1 = "select * from df1 limit 5"
query2 = "select * from df2 limit 5"
query3 = "select * from df3"
query4 = "select * from df4"sqldf(query1)
sqldf(query2)
sqldf(query3)
sqldf(query4)

部分结果如下:

3)写几个简单的SQL语句

① 查看sqlite的版本
student = pd.read_excel("student.xlsx")
pysqldf = lambda q: sqldf(q, globals())
query1 = """select sqlite_version(*)
"""
pysqldf(query1)

结果如下:

② where筛选
student = pd.read_excel("student.xlsx")
pysqldf = lambda q: sqldf(q, globals())
query1 = """select * from student where strftime('%Y-%m-%d',sage) = '1990-01-01'
"""
pysqldf(query1)

结果如下:

③ 多表连接
student = pd.read_excel("student.xlsx")
sc = pd.read_excel("sc.xlsx")pysqldf = lambda q: sqldf(q, globals())
query2 = """select *from student sjoin sc on s.sid = sc.sid
"""
pysqldf(query2)

部分结果如下:

④ 分组聚合
student = pd.read_excel("student.xlsx")
sc = pd.read_excel("sc.xlsx")pysqldf = lambda q: sqldf(q, globals())
query2 = """select s.sname as 姓名,sum(sc.score) as 总分from student sjoin sc on s.sid = sc.sidgroup by s.sname
"""
pysqldf(query2)

结果如下:

⑤ union查询
student = pd.read_excel("student.xlsx")
pysqldf = lambda q: sqldf(q, globals())
query1 = """select * from student where strftime('%Y-%m',sage) = '1990-01'unionselect * from student where strftime('%Y-%m',sage) = '1990-12'
"""
pysqldf(query1)

结果如下:

推荐文章

  • 李宏毅《机器学习》国语课程(2022)来了

  • 有人把吴恩达老师的机器学习和深度学习做成了中文版

  • 上瘾了,最近又给公司撸了一个可视化大屏(附源码)

  • 如此优雅,4款 Python 自动数据分析神器真香啊

  • 梳理半月有余,精心准备了17张知识思维导图,这次要讲清统计学

  • 香的很,整理了20份可视化大屏模板

技术交流

目前开通了技术交流群,群友已超过3000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、添加微信号:dkl88191,备注:来自CSDN
  • 方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:加群


技术交流、求职内推、干货汇总、与 3000+来自阿里、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

Python 与 SQL 这样超强结合,处理数据才是爆赞相关推荐

  1. linux系统python截图不显示中文_Linux系统通过python访问SQL SERVER,无法显示数据库内中文的问题...

    最近遇到几个需求,需要从centos上通过python访问sql server服务器查询数据,本来倒也不是很复杂,通过pyodbc比较顺利地实现了,具体如下: 先直接通过yum安装unixODBC.u ...

  2. Python操作SQL server向其中插入数据时报错,且报错内容没有指向性。

    错误提示如下:Traceback (most recent call last):   File "src\pymssql\_pymssql.pyx", line 458, in ...

  3. sql python tableau_Python+SQL+Tableau神组合,金融/咨询/互联网等抢着要的商业分析必备技能!...

    原标题:Python+SQL+Tableau神组合,金融/咨询/互联网等抢着要的商业分析必备技能! [快求职直推]:提供留学申请,背景提升,工作求职等全方位一体化服务,服务于致力进入券商.基金.互联网 ...

  4. python执行excel公式 语法_10个方法:用Python执行SQL、Excel常见任务

    10个方法:用Python执行SQL.Excel常见任务 数据从业者有许多工具可用于分割数据.有些人使用 Excel,有些人使用SQL,有些人使用Python.对于某些任务,使用 Python 的优点 ...

  5. python基于Echarts的城科就业数据可视化系统毕业设计源码150915

    Python城科就业数据可视化系统 摘 要 对于处理广泛的数据并整合到本地,Python爬虫有着自已强大的功能,面对城科就业数据可视化系统研究,我们考虑借助Python爬虫的功能对其实现相应的处理,本 ...

  6. 详解 Python 如何将爬取到的数据分别存储到 txt、excel、mysql 中!

    作者 | 黄伟呢 来源 | 数据分析与统计学之美 1. 页面分析 我爬取的页面是腾讯体育,链接如下: https://nba.stats.qq.com/player/list.htm 观察上图:左边展 ...

  7. 2020 年入门数据分析选择 Python 还是 SQL?七个常用操作对比!

    作者 | 刘早起 来源 | 早起Python(ID:zaoqi-python) 头图 |  CSDN 下载自东方IC SQL 和 Python 几乎是当前数据分析师必须要了解的两门语言,它们在处理数据 ...

  8. sql怎么实现取当前数据以及累计7天数据_年薪60万+大佬吐血整理字节跳动大数据面试真题...

    字节的面试难度一直很高,所以一直是我想攻克的目标,定下这个目标后就去准备收集了几十个字节实际面经,还包括面试前都需要做哪些准备.只能说是工欲善其事必先利其器,经过这些周全的准备,最终的面试还是很顺利的 ...

  9. scrapy爬虫储存到mysql_详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库

    获取要爬取的URL 爬虫前期工作 用Pycharm打开项目开始写爬虫文件 字段文件items # Define here the models for your scraped items # # S ...

最新文章

  1. leetcode的回溯算法题目用这个模板解题,一网打尽,so easy!!!
  2. php拍视频上传,php视频拍照上传头像功能实现代码分享
  3. 如何在 C#9 中使用 static 匿名函数
  4. 《操作系统》OS学习(十):进程控制
  5. 极光无限渗透测试面经_认识工业以太网及线缆测试
  6. Windows平台真实时毫秒级4K H264/H265直播技术方案探讨
  7. (转)实现自己的http server
  8. python文本文件csv_我的第一个Python项目:如何将杂乱无章的文本文件转换为纯净的CSV文件
  9. java stream flatmap
  10. linux netperf的安装
  11. 课后习题讲解(免费)高数下册
  12. 现代计算机的存储体系 (转载)
  13. 3D打印机DIY之一------Prusa i3的材料清单和总体结构组装
  14. Python 判断素数(质数)的方法讲解
  15. Bootstrap 对齐方式
  16. 【C语言进阶】预定义详解
  17. visio2019和Mathtype7.0版本冲突,出现VBE6EXT.OLB不能被加载
  18. 工作中少说这“五句话”(必读)
  19. macOS 上安装 PECL
  20. angular 自定义组件的双向数据绑定

热门文章

  1. 10大高权重博客_你知道几个?
  2. 服务器用户名 administrator 修改,windows2003中Administrator用户名与密码修改图解Windows服务器操作系统 -电脑资料...
  3. 与公共云提供商进行谈判的3个技巧
  4. 【Java攻城狮宝典】04-for循环(答案)
  5. 能量英语(一)之激情英语
  6. GitHub 开源神器 Bark模型,让文本转语音更简单
  7. 2021年美国对中国货物出口情况:美对中的出口额达到1492亿美元,同比增长21.30% [图]
  8. 关于developer express 的RepositoryItemCheckEdit 不能多选的问题
  9. 企业知识库的意义何在?到底如何高效搭建一个知识库?
  10. 今日头条测开----2轮