
?? 作者:韓信子@ShowMeAI
?? 資料分析實戰系列:https://www.showmeai.tech/tutorials/40
?? 本文地址:https://www.showmeai.tech/article-detail/314
?? 宣告:著作權所有,轉載請聯系平臺與作者并注明出處
?? 收藏ShowMeAI查看更多精彩內容

對于資料分析師、資料科學家等資料從業人員來說,我們有很多的工具可以幫助我們探索與分析資料,發現資料之下的分布與模式規律,最常見和實用的技能是使用 SQL 和 Python 進行資料分析,SQL 和 Python 進行資料分析各有優勢:
- SQL 支持很多資料庫(如 MS SQL、MySQL、SQLite、PostgreSQL等),可以很方便跨資料庫使用,而且無需編程語言基礎,可以快速上手,
- Python 資料分析(這里指的使用 Pandas 工具庫)比較靈活,可以進行資料清理、清洗、格式變化、復雜計算等,還支持很好的可視化,并能無縫銜接后續進一步深入挖掘與建模等流程,
但在大部分需求與功能上,SQL 和 Pandas 都是可以完成的,在本篇內容中,ShowMeAI就幫大家把所有的核心資料分析功能梳理處理,并用 SQL 和 Pandas 進行實作,我們可以輕松對比學習,

對于 Python 資料分析和 SQL 更詳盡的內容,歡迎大家查閱ShowMeAI制作的系列教程和速查表:
圖解資料分析:從入門到精通系列教程
資料科學工具庫速查表 | Pandas 速查表
編程語言速查表 | SQL 速查表
?? 場景&資料集
我們這里使用到的是 ??mtcars資料集,它是一份1974年摩托風尚雜志的資料(1974 Motor Trend Magazine),你可以在這里下載到csv文本格式的檔案,能夠匯入資料庫的db格式檔案可以在這里下載,
?? 實戰資料集下載(百度網盤):公眾號『ShowMeAI研究中心』回復『實戰』,或者點擊 這里 獲取本文 [21]SQL與Pandas資料分析實操大全 『mtcars資料集』
? ShowMeAI官方GitHub:https://github.com/ShowMeAI-Hub
我們先用python對資料進行讀取,讀取為pandas dataframe格式,
import numpy as np
import pandas as pd
mtcars_df = pd.read_csv("mtcars.csv")
下面我們梳理一下資料分析中會使用到的核心技能,并對比SQL和Pandas分別是如何實作這些功能的,
?? 資料選擇
有時我們需要回傳資料集的列(欄位)子集, 例如,我們要從 mtcars資料集中選擇 Miles/(US) 加侖 ( mpg), 氣缸數( cyl) 和總馬力 ( hp)這幾個欄位對應的資料,
?? SQL
我們使用標準的SELECT陳述句就可以完成資料選擇,
SELECT
mpg,
disp,
cyl
FROM mtcars
## mpg disp cyl
## 1 21.0 160.0 6
## 2 21.0 160.0 6
## 3 22.8 108.0 4
.
.
.
## 30 19.7 145.0 6
## 31 15.0 301.0 8
## 32 21.4 121.0 4
?? Pandas
我們直接把欄位子集的串列給到 dataframe 即可取出對應的資料子集,
mtcars_df[['mpg', 'disp', 'cyl']]
## mpg disp cyl
## 0 21.0 160.0 6
## 1 21.0 160.0 6
## 2 22.8 108.0 4
.
.
.
## 29 19.7 145.0 6
## 30 15.0 301.0 8
## 31 21.4 121.0 4
?? 限制
有時候我們希望提前查看一下資料集,但是在總體資料集很大的情況下,我們不能查看所有資料,我們會做一個限制,比如查看資料的前 5 行對表的結構和資料型別進行一個速覽,
?? SQL
SQL有 LIMIT n語法可以限制與回傳資料前n行,
SELECT *
FROM mtcars
LIMIT 5;
## mpg cyl disp hp drat wt qsec vs am gear carb model
## 1 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 Mazda RX4
## 2 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 Mazda RX4 Wag
## 3 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 Datsun 710
## 4 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 Hornet 4 Drive
## 5 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 Hornet Sportabout
?? Pandas
Pandas通過df.head(n = 5)的引數傳入來回傳頭部5行
mtcars_df.head(n = 5)
## mpg cyl disp hp drat ... vs am gear carb model
## 0 21.0 6 160.0 110 3.90 ... 0 1 4 4 Mazda RX4
## 1 21.0 6 160.0 110 3.90 ... 0 1 4 4 Mazda RX4 Wag
## 2 22.8 4 108.0 93 3.85 ... 1 1 4 1 Datsun 710
## 3 21.4 6 258.0 110 3.08 ... 1 0 3 1 Hornet 4 Drive
## 4 18.7 8 360.0 175 3.15 ... 0 0 3 2 Hornet Sportabout
##
## [5 rows x 12 columns]
?? 統計計數
如果我們要對資料進行統計計數,SQL 和 Pandas 的實作方式也不太一樣,
?? SQL
SQL通過count(*)語法回傳資料集的計數(例如下面是總行數),
SELECT COUNT(*)
FROM
mtcars LIMIT 5;
## COUNT(*)
## 1 32
?? Pandas
Pandas dataframe 有一個屬性 shape,它回傳資料集中的行數和列數,
nrows, ncols = mtcars_df.shape
print("Number of Rows: ", nrows)
## Number of Rows: 32
?? 排序
在 SQL 和 Pandas 中,我們可以根據一列或多列的值對資料進行升序或降序排列,
?? SQL
SQL通過ORDER BY來對資料進行排序,默認升序,
SELECT *
FROM mtcars
ORDER BY mpg
LIMIT 5;
## mpg cyl disp hp drat wt qsec vs am gear carb model
## 1 10.4 8 472 205 2.93 5.250 17.98 0 0 3 4 Cadillac Fleetwood
## 2 10.4 8 460 215 3.00 5.424 17.82 0 0 3 4 Lincoln Continental
## 3 13.3 8 350 245 3.73 3.840 15.41 0 0 3 4 Camaro Z28
## 4 14.3 8 360 245 3.21 3.570 15.84 0 0 3 4 Duster 360
## 5 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4 Chrysler Imperial
我們也可以指定降序排列( DESC),
SELECT *
FROM mtcars
ORDER BY mpg DESC
LIMIT 5;
## mpg cyl disp hp drat wt qsec vs am gear carb model
## 1 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1 Toyota Corolla
## 2 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1 Fiat 128
## 3 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 Honda Civic
## 4 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2 Lotus Europa
## 5 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1 Fiat X1-9
我們也可以同時指定按照某些列升序,某些列降序進行排序,例如下面我們按照mpg升序和model降序對資料排列,
SELECT *
FROM mtcars
ORDER BY mpg ASC, model DESC
LIMIT 5;
## mpg cyl disp hp drat wt qsec vs am gear carb model
## 1 10.4 8 460 215 3.00 5.424 17.82 0 0 3 4 Lincoln Continental
## 2 10.4 8 472 205 2.93 5.250 17.98 0 0 3 4 Cadillac Fleetwood
## 3 13.3 8 350 245 3.73 3.840 15.41 0 0 3 4 Camaro Z28
## 4 14.3 8 360 245 3.21 3.570 15.84 0 0 3 4 Duster 360
## 5 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4 Chrysler Imperial
?? Pandas
Pandas中的sort_values函式可以完成排序,
mtcars_df.sort_values(by = 'mpg').head(n = 5)
## mpg cyl disp hp drat ... vs am gear carb model
## 15 10.4 8 460.0 215 3.00 ... 0 0 3 4 Lincoln Continental
## 14 10.4 8 472.0 205 2.93 ... 0 0 3 4 Cadillac Fleetwood
## 23 13.3 8 350.0 245 3.73 ... 0 0 3 4 Camaro Z28
## 6 14.3 8 360.0 245 3.21 ... 0 0 3 4 Duster 360
## 16 14.7 8 440.0 230 3.23 ... 0 0 3 4 Chrysler Imperial
##
## [5 rows x 12 columns]
我們可以在sort_values函式中指定排序欄位和方式,
mtcars_df.sort_values(by = 'mpg', ascending=False).head(n = 5)
## mpg cyl disp hp drat ... vs am gear carb model
## 19 33.9 4 71.1 65 4.22 ... 1 1 4 1 Toyota Corolla
## 17 32.4 4 78.7 66 4.08 ... 1 1 4 1 Fiat 128
## 27 30.4 4 95.1 113 3.77 ... 1 1 5 2 Lotus Europa
## 18 30.4 4 75.7 52 4.93 ... 1 1 4 2 Honda Civic
## 25 27.3 4 79.0 66 4.08 ... 1 1 4 1 Fiat X1-9
##
## [5 rows x 12 columns]
當我們要對多個欄位排序并指定不同的規則時,只要在sort_values中傳入對應的欄位和排序規則串列即可,
mtcars_df.sort_values(by = ['mpg', 'model'], ascending=[True, False]).head(n = 5)
## mpg cyl disp hp drat ... vs am gear carb model
## 15 10.4 8 460.0 215 3.00 ... 0 0 3 4 Lincoln Continental
## 14 10.4 8 472.0 205 2.93 ... 0 0 3 4 Cadillac Fleetwood
## 23 13.3 8 350.0 245 3.73 ... 0 0 3 4 Camaro Z28
## 6 14.3 8 360.0 245 3.21 ... 0 0 3 4 Duster 360
## 16 14.7 8 440.0 230 3.23 ... 0 0 3 4 Chrysler Imperial
##
## [5 rows x 12 columns]
?? 新欄位生成
假如我們要基于目前已有欄位mpg和wt創建兩個新列 kg-per-gallon kpl和 wt_kg,計算后保留小數點后兩位,那 SQL 和 Pandas 的計算方式分別如下:
?? SQL
我們通過SELECT可以直接構建新的欄位與重命名,SQL 中也支持用ROUND函式對數值精度進行控制,
SELECT ROUND(mpg*1.60934, 2) AS kpg,
ROUND(wt*1000*0.453592, 2) AS wt_kg
FROM mtcars LIMIT 5;
## kpg wt_kg
## 1 33.80 1188.41
## 2 33.80 1304.08
## 3 36.69 1052.33
## 4 34.44 1458.30
## 5 30.09 1560.36
?? Pandas
Pandas 創建新欄位也非常簡單,對于數值進行精度控制需要借助 numpy 和 round 函式,
mtcars_df['kpg'] = np.round(mtcars_df['mpg']*1.60934, 2)
mtcars_df['wt_kg'] = np.round(mtcars_df['wt']*1000*0.453592, 2)
mtcars_df[['kpg', 'wt_kg']].head(n = 5)
## kpg wt_kg
## 0 33.80 1188.41
## 1 33.80 1304.08
## 2 36.69 1052.33
## 3 34.44 1458.30
## 4 30.09 1560.36
?? 資料選擇
我們經常需要對資料進行條件選擇,SQL 中會通過WHERE陳述句來進行條件選擇,而在 Pandas 中我們可以直接在 dataframe 后添加單一或組合條件來進行資料選擇,具體示例如下:
?? SQL
從 mtcars 資料集中選擇檔位為4(gear為4)的汽車如下
SELECT *
FROM mtcars
WHERE gear = 4;
## mpg cyl disp hp drat wt qsec vs am gear carb model
## 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 Mazda RX4
## 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 Mazda RX4 Wag
## 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 Datsun 710
## 4 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 Merc 240D
## 5 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 Merc 230
## 6 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4 Merc 280
## 7 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4 Merc 280C
## 8 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1 Fiat 128
## 9 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 Honda Civic
## 10 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1 Toyota Corolla
## 11 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1 Fiat X1-9
## 12 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2 Volvo 142E
如果我們需要使用組合條件,比如選擇gear為4以及氣缸數 cyl小于或等于 6的資料,那在where 陳述句中我們可以用AND等進行條件組合:
SELECT *
FROM mtcars
WHERE gear = 4 AND cyl <= 6;
## mpg cyl disp hp drat wt qsec vs am gear carb model
## 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 Mazda RX4
## 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 Mazda RX4 Wag
## 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 Datsun 710
## 4 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 Merc 240D
## 5 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 Merc 230
## 6 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4 Merc 280
## 7 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4 Merc 280C
## 8 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1 Fiat 128
## 9 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 Honda Civic
## 10 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1 Toyota Corolla
## 11 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1 Fiat X1-9
## 12 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2 Volvo 142E
如果上面兩個條件不是且關系,而是滿足任何一個都可以,那我們把條件組合方式換成OR
SELECT *
FROM mtcars
WHERE gear = 4 OR cyl <= 6;
## mpg cyl disp hp drat wt qsec vs am gear carb model
## 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 Mazda RX4
## 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 Mazda RX4 Wag
## 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 Datsun 710
## 4 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1 Hornet 4 Drive
## 5 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1 Valiant
## 6 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 Merc 240D
## 7 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 Merc 230
## 8 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4 Merc 280
## 9 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4 Merc 280C
## 10 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1 Fiat 128
## 11 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 Honda Civic
## 12 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1 Toyota Corolla
## 13 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1 Toyota Corona
## 14 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1 Fiat X1-9
## 15 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2 Porsche 914-2
## 16 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2 Lotus Europa
## 17 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6 Ferrari Dino
## 18 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2 Volvo 142E
?? Pandas
從mtcars中回傳gear == 4的資料
mtcars_df[mtcars_df.gear == 4]
## mpg cyl disp hp drat ... gear carb model kpg wt_kg
## 0 21.0 6 160.0 110 3.90 ... 4 4 Mazda RX4 33.80 1188.41
## 1 21.0 6 160.0 110 3.90 ... 4 4 Mazda RX4 Wag 33.80 1304.08
## 2 22.8 4 108.0 93 3.85 ... 4 1 Datsun 710 36.69 1052.33
## 7 24.4 4 146.7 62 3.69 ... 4 2 Merc 240D 39.27 1446.96
## 8 22.8 4 140.8 95 3.92 ... 4 2 Merc 230 36.69 1428.81
## 9 19.2 6 167.6 123 3.92 ... 4 4 Merc 280 30.90 1560.36
## 10 17.8 6 167.6 123 3.92 ... 4 4 Merc 280C 28.65 1560.36
## 17 32.4 4 78.7 66 4.08 ... 4 1 Fiat 128 52.14 997.90
## 18 30.4 4 75.7 52 4.93 ... 4 2 Honda Civic 48.92 732.55
## 19 33.9 4 71.1 65 4.22 ... 4 1 Toyota Corolla 54.56 832.34
## 25 27.3 4 79.0 66 4.08 ... 4 1 Fiat X1-9 43.93 877.70
## 31 21.4 4 121.0 109 4.11 ... 4 2 Volvo 142E 34.44 1260.99
##
## [12 rows x 14 columns]
如果要求 gear == 4 以及 cyl <= 6,那 Pandas 寫法如下:
mtcars_df[(mtcars_df.gear == 4) & (mtcars_df.cyl <= 6)]
## mpg cyl disp hp drat ... gear carb model kpg wt_kg
## 0 21.0 6 160.0 110 3.90 ... 4 4 Mazda RX4 33.80 1188.41
## 1 21.0 6 160.0 110 3.90 ... 4 4 Mazda RX4 Wag 33.80 1304.08
## 2 22.8 4 108.0 93 3.85 ... 4 1 Datsun 710 36.69 1052.33
## 7 24.4 4 146.7 62 3.69 ... 4 2 Merc 240D 39.27 1446.96
## 8 22.8 4 140.8 95 3.92 ... 4 2 Merc 230 36.69 1428.81
## 9 19.2 6 167.6 123 3.92 ... 4 4 Merc 280 30.90 1560.36
## 10 17.8 6 167.6 123 3.92 ... 4 4 Merc 280C 28.65 1560.36
## 17 32.4 4 78.7 66 4.08 ... 4 1 Fiat 128 52.14 997.90
## 18 30.4 4 75.7 52 4.93 ... 4 2 Honda Civic 48.92 732.55
## 19 33.9 4 71.1 65 4.22 ... 4 1 Toyota Corolla 54.56 832.34
## 25 27.3 4 79.0 66 4.08 ... 4 1 Fiat X1-9 43.93 877.70
## 31 21.4 4 121.0 109 4.11 ... 4 2 Volvo 142E 34.44 1260.99
##
## [12 rows x 14 columns]
如果要求 gear == 4 或 cyl <= 6,那 Pandas 寫法如下:
mtcars_df[(mtcars_df.gear == 4) | (mtcars_df.cyl <= 6)]
## mpg cyl disp hp drat ... gear carb model kpg wt_kg
## 0 21.0 6 160.0 110 3.90 ... 4 4 Mazda RX4 33.80 1188.41
## 1 21.0 6 160.0 110 3.90 ... 4 4 Mazda RX4 Wag 33.80 1304.08
## 2 22.8 4 108.0 93 3.85 ... 4 1 Datsun 710 36.69 1052.33
## 3 21.4 6 258.0 110 3.08 ... 3 1 Hornet 4 Drive 34.44 1458.30
## 5 18.1 6 225.0 105 2.76 ... 3 1 Valiant 29.13 1569.43
## 7 24.4 4 146.7 62 3.69 ... 4 2 Merc 240D 39.27 1446.96
## 8 22.8 4 140.8 95 3.92 ... 4 2 Merc 230 36.69 1428.81
## 9 19.2 6 167.6 123 3.92 ... 4 4 Merc 280 30.90 1560.36
## 10 17.8 6 167.6 123 3.92 ... 4 4 Merc 280C 28.65 1560.36
## 17 32.4 4 78.7 66 4.08 ... 4 1 Fiat 128 52.14 997.90
## 18 30.4 4 75.7 52 4.93 ... 4 2 Honda Civic 48.92 732.55
## 19 33.9 4 71.1 65 4.22 ... 4 1 Toyota Corolla 54.56 832.34
## 20 21.5 4 120.1 97 3.70 ... 3 1 Toyota Corona 34.60 1118.10
## 25 27.3 4 79.0 66 4.08 ... 4 1 Fiat X1-9 43.93 877.70
## 26 26.0 4 120.3 91 4.43 ... 5 2 Porsche 914-2 41.84 970.69
## 27 30.4 4 95.1 113 3.77 ... 5 2 Lotus Europa 48.92 686.28
## 29 19.7 6 145.0 175 3.62 ... 5 6 Ferrari Dino 31.70 1256.45
## 31 21.4 4 121.0 109 4.11 ... 4 2 Volvo 142E 34.44 1260.99
##
## [18 rows x 14 columns]
?? 資料分組
我們對資料進行分析,分組和按組統計是最重要的核心功能,我們來看看 SQL 和 Pandas 都分別如何對資料分組:
?? SQL
在 SQL 中可以借助于GROUP BY陳述句對資料進行分組,例如下面是我們基于 gear 欄位進行資料分組,
SELECT
gear,
COUNT(*)
FROM mtcars
GROUP BY gear;
## gear COUNT(*)
## 1 3 15
## 2 4 12
## 3 5 5
Pandas 中可以直接對 dataframe 使用 groupby 函式進行資料分組,如下:
?? Pandas
mtcars_df.groupby("gear").count()['model']
## gear
## 3 15
## 4 12
## 5 5
## Name: model, dtype: int64
?? 統計均值
非常常見的統計任務之一是對資料進行均值統計,對應的 SQL 和 Pandas 操作如下:
?? SQL
SELECT
AVG(wt),
AVG(hp),
AVG(mpg)
FROM mtcars;
## AVG(wt) AVG(hp) AVG(mpg)
## 1 3.21725 146.6875 20.09062
?? Pandas
mtcars_df[['wt', 'hp', 'mpg']].mean()
## wt 3.217250
## hp 146.687500
## mpg 20.090625
## dtype: float64
?? 方差
對于方差而言,SQL 和 Pandas 的計算方式如下:
?? SQL
SELECT AVG(wt*wt) - AVG(wt)*AVG(wt) AS WT,
AVG(hp*hp) - AVG(hp)*AVG(hp) AS HP,
AVG(mpg*mpg) - AVG(mpg)*AVG(mpg) AS MPG
FROM mtcars;
## WT HP MPG
## 1 0.9274609 4553.965 35.18897
?? Pandas
mtcars_df[['wt', 'hp', 'mpg']].var(ddof=0)
## wt 0.927461
## hp 4553.964844
## mpg 35.188975
## dtype: float64
?? 極差/范圍
另外一個常用統計量是極差(最大值 - 最小值),SQL 和 Pandas 的做法如下:
?? SQL
SELECT min(gear) AS MIN,
max(gear) AS MAX,
sum(gear) AS TOTAL,
max(gear)-min(gear) AS RANGE
FROM mtcars;
## MIN MAX TOTAL RANGE
## 1 3 5 118 2
?? Pandas
# Min
mtcars_df['gear'].min()
## 3
#Max
mtcars_df['gear'].max()
## 5
#Total
mtcars_df['gear'].sum()
## 118
#Range
mtcars_df['gear'].max() - mtcars_df['gear'].min()
## 2
?? 總結
在本篇中,ShowMeAI將使用 SQL 和 Python(Pandas 工具庫)進行資料分析做了梳理和對比,兩個都是非常常見的工具和方式,大家可以對比學習掌握后靈活使用,
參考資料
- ?? 圖解資料分析:從入門到精通系列教程:https://www.showmeai.tech/tutorials/33
- ?? 資料科學工具庫速查表 | Pandas 速查表:https://www.showmeai.tech/article-detail/101
- ?? 編程語言速查表 | SQL 速查表:https://www.showmeai.tech/article-detail/99
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/502814.html
標籤:Python
下一篇:基礎資料型別之元組
