【Pandas vs SQL】数据分析代码逐行比对,孰优孰劣?
在数据分析领域,pandas是python数据分析基础工具,SQL是数据库最常用分析语言。二者有相通的地方,也有很大的语法不同,做起数据分析来,谁将更胜一筹呢?
做过业务开发、跟数据库打交道比较多的小伙伴,经常会提到”增删改查“操作,分别对应数据的增加、删除、修改、查询,这4个操作。
下面,我将从查、增、删、改四个维度,依次比对pandas和SQL的实现步骤,比较二者的优劣。
文末含获取Python源码文件方式!
【讲解视频】此文章同步讲解视频:
https://www.zhihu.com/zvideo/1463296616861536256
https://www.zhihu.com/zvideo/1468878502435385344
【准备数据】数据分析对象-B站top100排行榜数据
这里,我采用B站top100排行榜的数据,作为数据分析对象。
想学习如何爬取top100排行榜数据的小伙伴,请移步至:
https://www.zhihu.com/zvideo/1442441321721663488
爬取下来的数据,存到excel:

数据准备完毕,开始数据分析,pandas和SQL进行逐行比对!
一、查询
1.1 查询前3行
pandas查询前3行:
SQL查询前3行:
1.2 查询后3行
pandas查询后3行:
SQL查询后3行:
1.3 查询指定列
pandas方法1(中括号[]):
pandas方法2(loc):
pandas方法3(iloc):
【马哥小贴士】关于loc和iloc的说明:
loc:works on labels in the index.(通过"索引名"定位)
iloc:works on the positions in the index (so it only takes integers).(通过"索引值"定位)
SQL查询指定列:
1.4 按条件查询
pandas单条件查询:
SQL单条件查询:
pandas多条件查询(并且关系):
SQL多条件查询(并且关系AND):
pandas多条件查询(或者关系):
SQL多条件查询(或者关系OR):
二、增加
2.1 增加行
pandas方法1(append):
pandas方法2(loc):
pandas方法3(concat):
SQL增加一行:
SQL增加多行:
2.2 增加列
pandas方法1(中括号[]):
pandas方法2(insert):
SQL增加一列:
三、删除
3.1 删除行
pandas方法1(drop-行名):
pandas方法2(drop-行号):
pandas方法3(drop-删除特定条件的行):
SQL删除多行:
3.2 删除列
pandas方法1(drop):
pandas方法2(del):
SQL删除一列:
四、修改
4.1 pandas方法1(loc):
4.2 pandas方法2(iloc):
4.3 SQL修改一个值 
4.4 SQL修改多个值 
五、四种连接方法

待分析数据:
5.1 左连接(Left Join)
pandas左连接:
SQL左连接:
5.2 右连接(Right Join)
pandas右连接:
SQL右连接:
5.3 内连接(Inner Join)
pandas内连接1:
pandas内连接2:(注意!根据索引连接)
pandas内连接3:(注意!根据索引连接)
SQL内连接1:
SQL内连接2:
SQL内连接3:
5.4 外连接(Outer Join)
pandas外连接1:
pandas外连接2:
pandas外连接3:
SQL外连接:(注意:MySQL不支持全连接,通过UNION实现)
END:马哥经验总结
怎么选择用哪个工具(Pandas or SQL)
根据数据存储类型,选择用哪个
·如果数据存储在数据库里,直接用SQL分析,比较方便。
·如果数据存储在Excel,或者csv、txt等文本类数据,或者从网页爬取下的结构化数据,存储为pandas的DataFrame格式再分析,比较方便。
根据数据量、性能,选择用哪个
·大部分情况下,Pandas比SQL的运行性能更优。
"文无第一,武无第二 | 没有绝对的谁更好,只有更适合的分析场景!"
【Pandas vs SQL】数据分析代码逐行比对,孰优孰劣?的更多相关文章
- 【Python数据分析案例】python数据分析老番茄B站数据(pandas常用基础数据分析代码)
一.爬取老番茄B站数据 前几天开发了一个python爬虫脚本,成功爬取了B站李子柒的视频数据,共142个视频,17个字段,含: 视频标题,视频地址,视频上传时间,视频时长,是否合作视频,视频分区,弹幕 ...
- pandas 读写sql数据库
如何从数据库中读取数据到DataFrame中? 使用pandas.io.sql模块中的sql.read_sql_query(sql_str,conn)和sql.read_sql_table(table ...
- C#与数据库访问技术总结(六)之Command对象创建SQl语句代码示例
Command对象创建SQl语句代码示例 说明:前面介绍了 Command 对象的方法和一些属性,回顾一下 Command对象主要用来执行SQL语句.利用Command对象,可以查询数据和修改数据. ...
- 判断字符串中是否有SQL攻击代码
判断一个输入框中是否有SQL攻击代码 public const string SQLSTR2 = @"exec|cast|convert|set|insert|select|delete|u ...
- 转:Excel导入SQL数据库完整代码
Excel导入SQL数据库完整代码 protected void studentload_Click(object sender, EventArgs e) {//批量添加学生信息 SqlConnec ...
- SQL Server中Table字典数据的查询SQL示例代码
SQL Server中Table字典数据的查询SQL示例代码 前言 在数据库系统原理与设计(第3版)教科书中这样写道: 数据库包含4类数据: 1.用户数据 2.元数据 3.索引 4.应用元数据 其中, ...
- java 连接mysql 和sql server2008代码
这两天用java分别连接mysql和sql server2008代码.刚開始都是有错.如今找到了在 自己机器上成功连接的代码: 1. mysql Class.forName("com.mys ...
- SQL Server代码的一种学习方法
使用SQL Server Management Studio的操作过程中,界面上方都可以生成sql脚本代码. 如新建数据库时: CREATE DATABASE [db_New] ON PRIMARY ...
- Pandas与SQL比较
由于许多潜在的Pandas用户对SQL有一定的了解,因此本文章旨在提供一些如何使用Pandas执行各种SQL操作的示例. import pandas as pd url = 'tips.csv' ti ...
随机推荐
- ACM - 动态规划 - P1282 多米诺骨牌
多米诺骨牌由上下 \(2\) 个方块组成,每个方块中有 \(1 \sim 6\) 个点.现有排成行的上方块中点数之和记为 \(S_1\),下方块中点数之和记为 \(S_2\),它们的差为 \(\lef ...
- 自定义XML文件模板步骤
- 微信小程序中涉及虚拟产品购买,ios暂不支持的相关整理意见
这个东西呢也不能怪微信小程序,属实苹果搞的事情,那怎么小程序相关内容去通过审核呢? 首先我们要搞清楚哪些属于虚拟商品:如某某书币,某某会员,或者是提前编辑好的网课,文档等都属虚拟商品购买,简言之就是没 ...
- 在原生CSS中使用变量
本文首发于我的博客 一直以来,CSS作为一种申明式的样式标记语言,很难像如javascript等命令式编程语言一样通过定义和使用变量的方式来维护和追踪某些状态.后来随着scss,less等CSS预处理 ...
- Day 19: EmberJS 入门指南
编者注:我们发现了有趣的系列文章<30天学习30种新技术>,正在翻译,一天一篇更新,年终礼包.下面是第19天的内容. 到目前为止,我们这一系列文章涉及了Bower.AngularJS.Gr ...
- Web存储之LocalStorage初探
Web存储之LocalStorage初探 HTML5的发布和定稿为前端界带来巨大的变化,新增的API和特性给业务带来了更多可能性,让用户体验拥有了更可能的丰富. · HTML Geolocation ...
- 使用 Blueprint 要注意 render_template 函数
此文章主要是为了记录在使用 Flask 的过程中遇到的问题.本章主要讨论 render_template 函数的问题. 使用 Flask 的同学都应该知道,项目中的 url 和视图函数是在字典里一一对 ...
- 聊一聊Web端的即时通讯
聊一聊Web端的即时通讯 Web端实现即时通讯的方法有哪些? - 短轮询 长轮询 iframe流 Flash Socket 轮询 客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并 ...
- Android地图化实现
今天在Android上实现了地图化,可以通过记录用户位置和体温是否异常来实现地图区域变色,并显示正常人数,与体温是否异常,且可以地图下钻. 效果展示:
- JavaScript操作select下拉框选项移动
运行结果: 源代码: 1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta char ...