【mysql+pandas】用MySQL命令处理在python中处理DataFrame数据 pandasql库
2023-09-11 14:14:25 时间
【mysql+pandas】用MySQL命令处理在python中处理DataFrame数据 pandasql库
1. 概述与pandasql安装
我们在使用python做数据处理时,不仅仅能使用python的相关方法,借助pandasql库提供的接口,我们还可以使用mysql的命令。这无疑给mysql高手们在python数据处理中又打开了一扇窗。
pandasql库的安装命令:
pip install pandasql -i https://pypi.tuna.tsinghua.edu.cn/simple
在Python中执行MySQL命令,可以使用pandasql库中的 sqldf() 方法。
使用sqldf()方法主要需要考虑传入两个参数,第一个即sql命令。
再者就是需要指定作用域,这个参数可以选择locals()和globals() 。
locals() 表示局部作用域,globals() 表示全局作用域。
“select * from 表名”中的表名,即DataFrame的变量名。程序会从 局部 或 全局 的变量中寻找变量名等于表名的变量,来做查询。
2. pandas+mysql操作展示
首先准备一组数据
import pandas as pd
import pandasql as pdsql
df = pd.DataFrame({'品种':list('AAAABBBCCD'),
'类型':list('abcdccdadd'),
'金额':[1,1,1,1,1,1,1,1,1,1]
})
df
数据展示如下:
先做一个简单的示例。只查询所有金额数据为例:
编辑SQL命令并执行:
sql1 = """
select 品种 from df
"""
# 执行
r1 = pdsql.sqldf(sql1, globals())
r1
查询结果如下:
然后做一个复杂些的聚合查询:
sql2 = """
SELECT 品种,
SUM(CASE WHEN 类型 IN ('a','b','c')
THEN 金额
ELSE 0
END
) '属于abc类型的金额汇总',
SUM(金额) '按品种汇总金额',
PRINTF('%2.2f%%',
SUM(CASE WHEN 类型 IN ('a','b','c')
THEN 金额
ELSE 0
END)*1.0/SUM(金额)) '占比'
FROM df
GROUP BY 品种"""
r2 = pdsql.sqldf(sql2, globals())
r2
查询结果如下:
本次分享就到这里,小啾感谢您的关注与支持!
🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ
相关文章
- mysql索引总结(2)-MySQL聚簇索引和非聚簇索引
- python中实现打印特定字符变换
- Python脚本写端口扫描器(socket,python-nmap)
- python安装python-lzf包,报错lzf_module.c:3:20: fatal error: Python.h: No such file or directory
- Python统计列表中的重复项出现的次数的方法
- 【MySQL高级】Mysql并发参数调整及常用SQL技巧
- 地球引擎初级教程——Python API 语法(内涵JavaScript转python工具包介绍)
- 2023版python安装教程奉上,Python永久使用 超详细版,一看就会【小白友好】
- python dnspython模块详解
- Python中python-nmap模块的使用
- Mysql错误check the manual that corresponds to your MySQL server version for the right syntax
- python 和 mysql连接
- Python 类的方法和静态方法
- Python 的结构体函数 struct pack, unpack 用法详解
- 构建字典时快捷设置默认值-python
- Mysql的安全配置向导命令mysql_secure_installation
- 《Python数据科学指南》——1.5 使用集合
- Python数据可视化 Pyecharts 制作 Funnel 漏斗图
- mac ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- 转【Python】Python-skier游戏[摘自.与孩子一起学编程]
- python操作mysql数据库系列-操作MySql数据库(五)
- python操作mysql数据库系列-操作MySql数据库(三)
- python操作mysql数据库系列-操作MySql数据库(二)
- python操作mysql数据库系列-操作MySql数据库(一)
- 百度飞桨Python小白逆袭大神学习心得
- Python 操作 MySQL 之 pysql 与 ORM(转载)
- PostgreSQL通过mysql_fdw访问MySQL数据库
- Python 基础 之 python 协程知识点整理,并实现一个简单 gevent 的协程并发图片下载的应用
- [Python]使用MYSQL
- Mysql启动时提示:Another MySQL daemon already running with the same unix socket.