【數(shù)據(jù)分析】pandas增刪改查!sql2pandas方法手冊(cè)
數(shù)據(jù)分析
Author:louwill
Machine Learning Lab
? ? ?
作為一名數(shù)據(jù)分析師or算法工程師,利用SQL熟練的取數(shù)是一項(xiàng)必備的基礎(chǔ)能力。除了SQL以外,Python的pandas也為我們提供了SQL的大多數(shù)功能。筆者對(duì)SQL和pandas相關(guān)數(shù)據(jù)操作的對(duì)照功能進(jìn)行了整理。可以說是非常實(shí)用了。
標(biāo)準(zhǔn)的SQL查詢語法如下:
select?(distinct)?[字段]from?[表1]?join?[表2] on [匹配字段]where [過濾條件]group by [字段]having?[過濾條件]order by [字段] desclimit?[個(gè)數(shù)]?offset?[個(gè)數(shù)]
我們以2018-19賽季部分NBA一些球星的數(shù)據(jù)為例進(jìn)行說明。該數(shù)據(jù)在pandas和MySQL中分別樣式分別如下:


SQL的增刪改查最主要的還是查詢方法。我們先從查詢方法開始。
select:選擇球員、球隊(duì)和場(chǎng)均得分三列:

distinct:?查看這些球員都有哪幾種球場(chǎng)位置:

count:統(tǒng)計(jì)樣本量

分類值統(tǒng)計(jì):

連續(xù)值描述性統(tǒng)計(jì):

where:
單條件:查找屬于得分后衛(wèi)的球員:

多條件:查找屬于得分后衛(wèi)且得分大于27分的球員:

in/not in?查找:

order by?排序語句:
對(duì)球員得分進(jìn)行排序:

limit/offset語句:
對(duì)球員得分排序后取前三或者第二到第四

group by語句:
求每個(gè)位置球員的平均得分并降序排序:

having子句:
求每個(gè)位置球員的平均得分并篩選大于26分的記錄:

多表聯(lián)立查詢:inner join/outer(left right) join/union
給出新表如下:

inner join:

left join:

right join:

union:

主要的查詢部分對(duì)照完了之后,我們?cè)賮砜碨QL和pandas中的增刪改方法。
SQL中創(chuàng)建表、修改表、插入表和刪除表的語句如下表所示:

上述四種方法與之對(duì)應(yīng)的pandas寫法如下:

參考資料:
往期精彩回顧
本站知識(shí)星球“黃博的機(jī)器學(xué)習(xí)圈子”(92416895)
本站qq群704220115。
加入微信群請(qǐng)掃碼:
