编辑:zone

来源:数据管道

作者:艾德宝器

Abstract

  • Pandas是一个开源的Python数据分析库,结合 NumPy 和 Matplotlib 类库,可以在内存中进行高性能的数据清洗、转换、分析及可视化工作。

  • 对于数据开发工程师或分析师而言,SQL 语言是标准的数据查询工具。本文提供了一系列的示例,说明如何使用pandas执行各种SQL操作。

**Pandas简介 **

Pandas把结构化数据分为了三类:

  • Series,可以理解为一个一维的数组,只是index可以自己改动。

  • DataFrame,一个类似于表格的数据类型的2维结构化数据。

  • Panel,3维的结构化数据。

Dataframe实例:

image

对于DataFrame,有一些固有属性:

image

SQL VS Pandas

SELECT(数据选择)

在SQL中,选择是使用逗号分隔的列列表(或*来选择所有列):

image

在Pandas中,选择不但可根据列名称选取,还可以根据列所在的位置选取。相关语法如下:

  • loc,基于列label,可选取特定行(根据行index)

  • iloc,基于行/列的位置

  • ix,为loc与iloc的混合体,既支持label也支持position

  • at,根据指定行index及列label,快速定位DataFrame的元素;

  • iat,与at类似,不同的是根据position来定位的;

image

image

image

WHERE(数据过滤)

在SQL中,过滤是通过WHERE子句完成的:

image

在pandas中,Dataframe可以通过多种方式进行过滤,最直观的是使用布尔索引:

image

在where子句中常常会搭配and, or, in, not关键词,Pandas中也有对应的实现:

SQL:

image

Pandas:

image

在where字句中搭配NOT NULL可以获得某个列不为空的项,Pandas中也有对应的实现:

SQL:

image

Pandas:

image

DISTINCT(数据去重)

SQL:

image

Pandas:

image

宝器带你画重点

  • subset,为选定的列做数据去重,默认为所有列;

  • keep,可选择{'first', 'last', False},保留重复元素中的第一个、最后一个,或全部删除;

  • inplace ,Pandas 中 inplace 参数在很多函数中都会有,它的作用是:是否在原对象基础上进行修改,默认为False,返回一个新的Dataframe;若为True,不创建新的对象,直接对原始对象进行修改。

GROUP BY(数据分组)

groupby()通常指的是这样一个过程:我们希望将数据集拆分为组,应用一些函数(通常是聚合),然后将这些组组合在一起:

image

常见的SQL操作是获取数据集中每个组中的记录数。

image

Pandas中对应的实现:

image

注意,在Pandas中,我们使用size()而不是count()。这是因为count()将函数应用于每个列,返回每个列中的非空记录的数量。具体如下:

image

还可以同时应用多个函数。例如,假设我们想要查看每个星期中每天的小费金额有什么不同。

SQL:

image

Pandas:

image

更多关于Groupy和数据透视表内容请阅读****:

  • 这些祝福和干货比那几块钱的红包重要的多!

JOIN(数据合并)

  • 可以使用join()或merge()执行连接。

  • 默认情况下,join()将联接其索引上的DataFrames。

  • 每个方法都有参数,允许指定要执行的连接类型(LEFT, RIGHT, INNER, FULL)或要连接的列(列名或索引)

image

现在看一下不同的连接类型的SQL和Pandas实现:

  • INNER JOIN

SQL:

image

Pandas:

image

  • LEFT OUTER JOIN

SQL:

image.gif

Pandas:

image

  • RIGHT JOIN

SQL:

image

Pandas:

image

  • FULL JOIN

SQL:

image

Pandas:

image

ORDER(数据排序)

SQL:

image

Pandas:

image

UPDATE(数据更新)

SQL:

image

Pandas:

image

DELETE(数据删除)

SQL:

image

Pandas:

image

数据分析之Pandas VS SQL!相关推荐

  1. python常用命令汇总-python数据分析之pandas常用命令整理

    原标题:python数据分析之pandas常用命令整理 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型 ,提供了高效地 ...

  2. (转载)Python数据分析之pandas学习

    转载地址:http://www.cnblogs.com/nxld/p/6058591.html Python中的pandas模块进行数据分析. 接下来pandas介绍中将学习到如下8块内容: 1.数据 ...

  3. pandas python2_Python数据分析之pandas学习(二)

    有关pandas模块的学习与应用主要介绍以下8个部分: 1.数据结构简介:DataFrame和Series 2.数据索引index 3.利用pandas查询数据 4.利用pandas的DataFram ...

  4. pandas filter_数据分析之Pandas操作(2)

    接着数据分析之Pandas操作(1)的介绍,本次介绍在实际应用场景中几个常用的函数.还是以titanic生存数据为例,本次需要导入pandas .numpy .scipy三个工具包. import p ...

  5. 学习篇之数据分析库pandas

    import numpy as np import pandas as pd #导入numpy.pandas模块 Series 数据结构(带有标签的一维数组) # Series 是带有标签的一维数组, ...

  6. 第3章 数据分析工具Pandas

    · 数据结构分析 · · 统计计算与描述 · 层次化索引 · ·数据排序 · 统计计算与描述 · 层次化索引 · 读写数据操作· 1.掌握 数据结构分析,索引操作及高级索引2.掌握 算术运算与数据对齐 ...

  7. python 数据分析核心--pandas

    前言 Python作为一门数据可视化很好的语言,可以使用像matplotlib等库画出图形,处理数据主要使用pandas 这里主要讨论Pandas 初识pandas 大多数人只要提及pandas,基本 ...

  8. Python数据分析之pandas学习

    Python中的pandas模块进行数据分析. 接下来pandas介绍中将学习到如下8块内容: 1.数据结构简介:DataFrame和Series 2.数据索引index 3.利用pandas查询数据 ...

  9. pandas打印某一列_一场Pandas与SQL的巅峰大战

    作为一名数据分析师,平常用的最多的工具是SQL(包括MySQL和Hive SQL等).对于存储在数据库中的数据,自然用SQL提取会比较方便,但有时我们会处理一些文本数据(txt,csv),这个时候就不 ...

最新文章

  1. Python基础语法学习笔记
  2. [转载] js 读取和输出txt文件
  3. 【Java设计模式】工厂模式
  4. ORACLE EXP/IMP 说明
  5. 河南农大姚文与中科院北京基因组所章张课题组合作发布真核生物长链反向重复序列数据库...
  6. curl 使用 ~/.netrc ( Windows 上是 _netrc ) 问题
  7. http接口_基于Python的HTTP接口自动化测试框架实现
  8. JAVA毕业设计后勤管理系统计算机源码+lw文档+系统+调试部署+数据库
  9. Layabox3d入门游戏视频教程
  10. php创蓝253四要素认证_【PHP】创蓝253云通讯平台国际短信API接口demo
  11. 总体设计和数据库设计
  12. php开发微信jssdk录音功能,微信 JS-SDK 录音功能开发
  13. 【机器学习】Learning to Rank 简介
  14. 家庭玩游戏配置哪种计算机,玩游戏用什么系统?Win10专业版和Win10家庭版玩游戏的区别...
  15. ROS2 学习古月居ros21讲学习笔记
  16. php 循环 解方程,解方程. 40%X=12080%X-60%X=1.26X+48=168X+20%X=24X-x5=1
  17. HDU--1871--细节处理--记忆化暴力查找
  18. Virtualbox安装Windows11教程,提供虚机专用镜像下载。
  19. 研发团队如何借助Gitlab来做代码review
  20. qt creator提示no valid kits found

热门文章

  1. .Net程序测试阿里云OSS开放存储服务
  2. sqlite遇到database is locked问题的完美解决
  3. andorid关于selector更换图片失效
  4. fltk在UbuntuLinux中搭建和测试-《C++程序设计原理与实践》Chapter12:显示模型 环境构建...
  5. 关于IE透明度失效的问题
  6. 武汉职业技术学院技能高考计算机专业分数线,武汉职业技术学院历年分数线 2021武汉职业技术学院录取分数线...
  7. php设计要求,《PHP设计模式介绍》第十章 规范模式
  8. 个人项目总结----By Li Zhang
  9. Taotao Picks Apples
  10. maven私服的使用