美文网首页
【Pandas vs SQL】数据分析代码逐行比对,孰优孰劣?

【Pandas vs SQL】数据分析代码逐行比对,孰优孰劣?

作者: 马哥python说 | 来源:发表于2022-05-02 07:45 被阅读0次

    在数据分析领域,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:

    image.png 数据准备完毕,开始数据分析,pandas和SQL进行逐行比对!

    一、查询

    1.1 查询前3行

    pandas查询前3行: image.png
    SQL查询前3行: image.png

    1.2 查询后3行

    pandas查询后3行: image.png
    SQL查询后3行: image.png

    1.3 查询指定列

    pandas方法1(中括号[]): image.png
    pandas方法2(loc): image.png
    pandas方法3(iloc): image.png

    【马哥小贴士】关于loc和iloc的说明:
    loc:works on labels in the index.(通过"索引名"定位)
    iloc:works on the positions in the index (so it only takes integers).(通过"索引值"定位)

    SQL查询指定列: image.png

    1.4 按条件查询

    pandas单条件查询: image.png
    SQL单条件查询: image.png
    pandas多条件查询(并且关系): image.png
    SQL多条件查询(并且关系AND): image.png
    pandas多条件查询(或者关系): image.png
    SQL多条件查询(或者关系OR): image.png

    二、增加

    2.1 增加行

    pandas方法1(append): image.png
    pandas方法2(loc): image.png
    pandas方法3(concat): image.png
    SQL增加一行: image.png
    SQL增加多行: image.png

    2.2 增加列

    pandas方法1(中括号[]): image.png
    pandas方法2(insert): image.png
    SQL增加一列: image.png

    三、删除

    3.1 删除行

    pandas方法1(drop-行名): image.png
    pandas方法2(drop-行号): image.png
    pandas方法3(drop-删除特定条件的行): image.png
    SQL删除多行: image.png

    3.2 删除列

    pandas方法1(drop): image.png
    pandas方法2(del): image.png
    SQL删除一列: image.png

    四、修改

    4.1 pandas方法1(loc): image.png

    4.2 pandas方法2(iloc): image.png

    4.3 SQL修改一个值 image.png

    4.4 SQL修改多个值 image.png

    五、四种连接方法

    image.png
    待分析数据: image.png

    5.1 左连接(Left Join)

    pandas左连接: image.png
    SQL左连接: image.png

    5.2 右连接(Right Join)

    pandas右连接: image.png
    SQL右连接: image.png

    5.3 内连接(Inner Join)

    pandas内连接1: image.png
    pandas内连接2:(注意!根据索引连接) image.png
    pandas内连接3:(注意!根据索引连接) image.png
    SQL内连接1: image.png
    SQL内连接2: image.png
    SQL内连接3: image.png

    5.4 外连接(Outer Join)

    pandas外连接1:


    image.png
    pandas外连接2: image.png
    pandas外连接3: image.png
    SQL外连接:(注意:MySQL不支持全连接,通过UNION实现) image.png

    END:马哥经验总结

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

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

    根据数据量、性能,选择用哪个
    ·大部分情况下,Pandas比SQL的运行性能更优。

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

    相关文章

      网友评论

          本文标题:【Pandas vs SQL】数据分析代码逐行比对,孰优孰劣?

          本文链接:https://www.haomeiwen.com/subject/eojbyrtx.html