Pandas SQL 语法归纳总结,真的太全了
作者 | 俊欣
来源 | 关于数据分析与可视化
对于数据分析师而言,Pandas
与SQL
可能是大家用的比较多的两个工具,两者都可以对数据集进行深度的分析,挖掘出有价值的信息,但是二者的语法有着诸多的不同,今天小编就来总结归纳一下Pandas
与SQL
这两者之间在语法上到底有哪些不同。
导入数据
对于Pandas
而言,我们需要提前导入数据集,然后再进行进一步的分析与挖掘
import pandas as pdairports = pd.read_csv('data/airports.csv')
airport_freq = pd.read_csv('data/airport-frequencies.csv')
runways = pd.read_csv('data/runways.csv')
基础语法
在SQL
当中,我们用SELECT
来查找数据,WHERE
来过滤数据,DISTINCT
来去重,LIMIT
来限制输出结果的数量,
输出数据集
## SQL
select * from airports## Pandas
airports
输出数据集的前三行数据,代码如下
## SQL
select * from airports limit 3## Pandas
airports.head(3)
对数据集进行过滤筛查
## SQL
select id from airports where ident = 'KLAX'## Pandas
airports[airports.ident == 'KLAX'].id
对于筛选出来的数据进行去重
## SQL
select distinct type from airport## Pandas
airports.type.unique()
多个条件交集来筛选数据
多个条件的交集来筛选数据,代码如下
## SQL
select * from airports
where iso_region = 'US-CA' and
type = 'seaplane_base'## Pandas
airports[(airports.iso_region == 'US-CA') &
(airports.type == 'seaplane_base')]
或者是
## SQL
select ident, name, municipality from airports
where iso_region = 'US-CA' and
type = 'large_airport'## Pandas
airports[(airports.iso_region == 'US-CA') &
(airports.type == 'large_airport')][['ident', 'name', 'municipality']]
排序
在Pandas
当中默认是对数据进行升序排序,要是我们希望对数据进行降序排序,需要设定ascending
参数
## SQL
select * from airport_freq
where airport_ident = 'KLAX'
order by type## Pandas
airport_freq[airport_freq.airport_ident == 'KLAX']
.sort_values('type')
又或者是
## SQL
select * from airport_freq
where airport_ident = 'KLAX'
order by type desc## Pandas
airport_freq[airport_freq.airport_ident == 'KLAX']
.sort_values('type', ascending=False)
筛选出列表当中的数据
要是我们需要筛选出来的数据在一个列表当中,这里就需要用到isin()
方法,代码如下
## SQL
select * from airports
where type in ('heliport', 'balloonport')## Pandas
airports[airports.type.isin(['heliport', 'balloonport'])]
又或者是
## SQL
select * from airports
where type not in ('heliport', 'balloonport')## Pandas
airports[~airports.type.isin(['heliport', 'balloonport'])]
删除数据
在Pandas
当中删除数据用的是drop()
方法,代码如下
## SQL
delete from dataframe where col_name = 'MISC'## Pandas
df = df[df.type != 'MISC']
df.drop(df[df.type == 'MISC'].index)
更新数据
在SQL
当中更新数据使用的是update
和set
方法,代码如下
### SQL
update airports set home_link = '......'
where ident == 'KLAX'### Pandas
airports.loc[airports['ident'] == 'KLAX', 'home_link'] = '......'
调用统计函数
对于给定的数据集,如下图所示
runways.head()
output
我们调用min()
、max()
、mean()
以及median()
函数作用于length_ft
这一列上面,代码如下
## SQL
select max(length_ft), min(length_ft),
avg(length_ft), median(length_ft) from runways## Pandas
runways.agg({'length_ft': ['min', 'max', 'mean', 'median']})
合并两表格
在Pandas
当中合并表格用的是pd.concat()
方法,在SQL
当中则是UNION ALL
,代码如下
## SQL
select name, municipality from airports
where ident = 'KLAX'
union all
select name, municipality from airports
where ident = 'KLGB'## Pandas
pd.concat([airports[airports.ident == 'KLAX'][['name', 'municipality']],
airports[airports.ident == 'KLGB'][['name', 'municipality']]])
分组
顾名思义也就是groupby()
方法,代码如下
## SQL
select iso_country, type, count(*) from airports
group by iso_country, type
order by iso_country, type## Pandas
airports.groupby(['iso_country', 'type']).size()
分组之后再做筛选
在Pandas
当中是在进行了groupby()
之后调用filter()
方法,而在SQL
当中则是调用HAVING
方法,代码如下
## SQL
select type, count(*) from airports
where iso_country = 'US'
group by type
having count(*) > 1000
order by count(*) desc## Pandas
airports[airports.iso_country == 'US']
.groupby('type')
.filter(lambda g: len(g) > 1000)
.groupby('type')
.size()
.sort_values(ascending=False)
TOP N records
代码如下
## SQL
select 列名 from 表名
order by size
desc limit 10## Pandas
表名.nlargest(10, columns='列名')
往
期
回
顾
技术
Python多层级索引的数据分析
资讯
红帽、Docker、SUSE在俄停服
技术
用Python实现自动扫雷!
技术
一行Python代码能干嘛?来看!
分享
点收藏
点点赞
点在看
Pandas SQL 语法归纳总结,真的太全了相关推荐
- PandasSQL语法归纳总结,真的太全了
对于数据分析师而言,Pandas与SQL可能是大家用的比较多的两个工具,两者都可以对数据集进行深度的分析,挖掘出有价值的信息,但是二者的语法有着诸多的不同,今天小编就来总结归纳一下Pandas与SQL ...
- 语法手册_是真的猛!SQL 语法速成手册
小Hub领读: 整理非常全面,原谅我书读得少,只能用一句卧槽来赞美了! 太赞了,SpringBoot+Vue前后端分离完整入门教程!mp.weixin.qq.com 作者:静默虚空 原文:https ...
- oracle语法和sql的区别吗,ORACLE和SQL语法区别归纳
ORACLE和SQL语法区别归纳 数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2kb,SQLServ ...
- sql多行插入insert多行无法分析查询文本_收藏!SQL语法全集合!
来源:PHP开源社区 本文针对关系型数据库的一般语法.限于篇幅,本文侧重说明用法,不会展开讲解特性.原理. 一.基本概念 数据库术语 数据库(database) - 保存有组织的数据的容器(通常是一个 ...
- oracle stdevp函数,ORACLE和SQL语法区别归纳整理.doc
ORACLE和SQL语法区别归纳整理 一.数据类型比较⑴.字符数据类型?? CHAR?? CHAR?? 都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb变长 ...
- 欧姆定律的c语言编程例题,初中物理欧姆定律六大题型归纳,老师都赞太全了!务必珍藏打印...
初中的欧姆定律可以说涉及的知识点还不是太全面,但是对于初中生的同学来讲,初中的欧姆定律已经算是有难度的内容了. 在学习欧姆定律的时候,同学们不仅仅要掌握欧姆定律的定律和公式,还要掌握欧姆定律公式的运用 ...
- DB2数据库学习篇之最全面的sql语法知识总结
DB2数据库学习篇之最全面的sql语法知识总结 简介 数据定义语法 数据类型语法 数据操作语法 常用重要语法例子 简介 DB2是IBM公司开发的关系数据库管理系统,它有多种不同的版本,如:DB2工作组 ...
- 一款SQL自动检查神器,再也不用担心SQL出错了,自动补全、回滚等功能大全
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:最美分享Coder 来源:http://suo.im/6uI ...
- update 两个表关联_你真的了解全量表,增量表及拉链表吗?
1 Mysql数据准备 第一天 9月10号数据 1,待支付,2020-09-10 12:20:11,2020-09-10 12:20:112,待支付,2020-09-10 14:20:11,2020- ...
最新文章
- VLAN-VTP-Trunk
- 上周回顾:赛门铁克失足 微软开源对骂
- [YTU]_2639 ( 改错题:类中私有成员的访问)
- fwr171改无线服务器,迅捷(Fast)FWR171无线AP模式设置
- Django框架创建
- 服务器不知道怎么回事安卓系统很卡,为什么安卓系统很容易变卡?该怎么解决?看完长知识了...
- 函数计算GB镜像秒级启动:下一代软硬件架构协同优化
- python循环一百次_python循环
- windows系统启用2个以上的mysql服务
- maven使用mvn命令创建项目异常java.lang.NoClassDefFoundError: org/apache/commons/collections/ExtendedProperties
- ubuntu设置截屏热键(区域截屏)
- 高等数学张宇18讲 第二讲 极限与连续
- 揭秘淘宝用户增长全链路项目管理
- 诚之和:指挥着10万多台僵尸机器人网络的黑客被乌克兰警方抓获
- 数据结构:按成绩输出名次排序
- java微信扫一扫_java调用微信扫一扫
- 淘汰我们的不是这个时代,而是原地踏步的自己
- 如何集中自己的注意力
- 算法设计 - 二分法和三分法,洛谷P3382
- 计算机导论题目2020,计算机网络论文题目_
热门文章
- Python中常用的数据分析工具(模块)有哪些?
- Windows10下SSH远程拷贝文件
- python数据池连接PG
- Windows程序设计------字体不等宽引出的问题及其细节知识
- 通过yum安装配置lamp
- 【WEB API项目实战干货系列】- API登录与身份验证(三)
- Python学习day5作业-ATM和购物商城
- 报错 org.springframework.beans.factory.BeanCreationException
- 设计模式(行为型模式)——备忘录模式(Memento)
- jQuery最简单的表单提交方式