目录

  • 一、查询
  • 1.1 查询前3行
  • 1.2 查询后3行
  • 1.3 查询指定列
  • 1.4 按条件查询
  • 二、增加
  • 2.1 增加行
  • 2.2 增加列
  • 三、删除
  • 3.1 删除行
  • 3.2 删除列
  • 四、修改
  • 4.1 pandas方法1(loc)
  • 4.2 pandas方法2(iloc)
  • 4.3 SQL修改一个值
  • 4.4 SQL修改多个值
  • 五、四种连接方法
  • 5.1 左连接(Left Join)
  • 5.2 右连接(Right Join)
  • 5.3 内连接(Inner Join)
  • 5.4 外连接(Outer Join)
  • END:马哥经验总结


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

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

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

爬取下来的数据,存到excel:

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

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

一、查询

1.1 查询前3行

pandas查询前3行:

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

SQL查询前3行:

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

1.2 查询后3行

pandas查询后3行:

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

SQL查询后3行:

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

1.3 查询指定列

pandas方法1(中括号[]):

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

pandas方法2(loc):

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

pandas方法3(iloc):

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

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

SQL查询指定列:

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

1.4 按条件查询

pandas单条件查询:

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

SQL单条件查询:

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

pandas多条件查询(并且关系):

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


SQL多条件查询(并且关系AND):

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


pandas多条件查询(或者关系):

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


SQL多条件查询(或者关系OR):

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

二、增加

2.1 增加行

pandas方法1(append):

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

pandas方法2(loc):

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

pandas方法3(concat):

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

SQL增加一行:

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

SQL增加多行:

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

2.2 增加列

pandas方法1(中括号[]):

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

pandas方法2(insert):

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

SQL增加一列:

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

三、删除

3.1 删除行

pandas方法1(drop-行名):

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


pandas方法2(drop-行号):

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

pandas方法3(drop-删除特定条件的行):

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

SQL删除多行:

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

3.2 删除列

pandas方法1(drop):

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

pandas方法2(del):

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

SQL删除一列:

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

四、修改

4.1 pandas方法1(loc)

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

4.2 pandas方法2(iloc)

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

4.3 SQL修改一个值

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

4.4 SQL修改多个值

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

五、四种连接方法

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


待分析数据:

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

5.1 左连接(Left Join)

pandas左连接:

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

SQL左连接:

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

5.2 右连接(Right Join)

pandas右连接:

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

SQL右连接:

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

5.3 内连接(Inner Join)

pandas内连接1:

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

pandas内连接2:(注意!根据索引连接)

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

pandas内连接3:(注意!根据索引连接)

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

SQL内连接1:

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

SQL内连接2:

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

SQL内连接3:

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

5.4 外连接(Outer Join)

pandas外连接1:

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

pandas外连接2:

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

pandas外连接3:

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

SQL外连接:(注意:MySQL不支持全连接,通过UNION实现)

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

END:马哥经验总结

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

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

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