【Pandas vs SQL】数据分析代码逐行比对,孰优孰劣?
马哥python说
2022年01月07日 19:21
收录于文集
共8篇

在数据分析领域,pandas是python数据分析基础工具,SQL是数据库最常用分析语言。二者有相通的地方,也有很大的语法不同,做起数据分析来,谁将更胜一筹呢?

做过业务开发、跟数据库打交道比较多的小伙伴,经常会提到”增删改查“操作,分别对应数据的增加、删除、修改、查询,这4个操作。

下面,我将从查、增、删、改四个维度,依次比对pandas和SQL的实现步骤,比较二者的优劣。

此文章中截图的完整版python代码和SQL文件,已上传我的公众号"老男孩的平凡之路&#​34;,后台回复关键词"数据分析比对&#​34;,即可获取完整Python源码文件及数据!

【准备工作】数据分析对象-B站top100排行榜数据

这里,我采用B站top100排行榜的数据,作为数据分析对象。

想学习如何爬取top100排行榜数据的小伙伴,请移步至:

爬取下来的数据,存到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.(通过"索引名&#​34;定位) iloc:works on the positions in the index (so it only takes integers).(通过"索引值&#​34;定位)

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修改多个值

LATER:后续计划

以上,就是针对增删改查4个操作依次比对了pandas和SQL的不同,后续还会针对join连接、union/concat连接、case when条件判断、groupby分组统计等操作继续发布内容,敬请关注。

END:马哥经验总结

怎么选择用哪个工具(Pandas or SQL)

  • 根据数据存储类型,选择用哪个

如果数据存储在数据库里,直接用SQL分析,比较方便。 如果数据存储在Excel,或者csv、txt等文本类数据,或者从网页爬取下的结构化数据,存储为pandas的DataFrame格式再分析,比较方便。

  • 根据数据量、性能,选择用哪个

大部分情况下,Pandas比SQL的运行性能更优。

文无第一,武无第二 | 没有绝对的谁更好,只有更适合的分析场景!

ADD:获取Python源码文件

此文章中截图的完整版python代码和SQL文件,已上传我的公众号"老男孩的平凡之路&#​34;,后台回复关键词"数据分析比对",即可获取完整Python源码文件及数据!


我是 @马哥python说​ ,关注我,持续分享python干货!