日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

【Python】14种方式,34个案例:对比SQL,学习Pandas操作

發(fā)布時(shí)間:2025/3/12 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】14种方式,34个案例:对比SQL,学习Pandas操作 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

公眾號(hào):尤而小屋
作者:Peter
編輯:Peter

本文主題:對(duì)比SQL,學(xué)習(xí)Pandas操作

在SQL中查詢數(shù)據(jù)的時(shí)候我們所有各種操作,主要是通過(guò)select、where、group by等多個(gè)關(guān)鍵詞的組合查詢來(lái)實(shí)現(xiàn)的。本文中介紹的如何在相同的需求下,通過(guò)pandas來(lái)實(shí)現(xiàn)取數(shù)操作。

比較方向

  • 查詢?nèi)繑?shù)據(jù)

  • 前N條

  • 后N條

  • 中間段數(shù)據(jù)

  • 部分字段

  • 指定等式條件

  • 指定不等式條件

  • 取反操作

  • 指定多個(gè)條件

  • 指定計(jì)算等式

  • 模糊查詢

  • 排序

  • 分組統(tǒng)計(jì)

  • 取別名

  • 參考資料

    因?yàn)楸疚闹饕榻B的是如何通過(guò)pandas來(lái)獲取我們想要的數(shù)據(jù),也是pandas的各種取數(shù)技巧,參考之前介紹的3篇文章:

    各種騷氣的Pandas取數(shù)操作

    贊!五花八門的Pandas篩選數(shù)據(jù)

    最后一篇:玩轉(zhuǎn)Pandas取數(shù)

    模擬數(shù)據(jù)

    在數(shù)據(jù)庫(kù)中,我們先模擬了3份數(shù)據(jù):

    1、學(xué)生信息表

    --?學(xué)生信息mysql>?select?*??from?Student; +------+--------+------------+-------+ |?s_id?|?s_name?|?s_birth????|?s_sex?| +------+--------+------------+-------+ |?01???|?趙雷???|?1990-01-01?|?男????| |?02???|?錢電???|?1990-12-21?|?男????| |?03???|?孫風(fēng)???|?1990-05-20?|?男????| |?04???|?李云???|?1990-08-06?|?男????| |?05???|?周梅???|?1991-12-01?|?女????| |?06???|?吳蘭???|?1992-03-01?|?女????| |?07???|?鄭竹???|?1989-07-02?|?女????| |?08???|?王菊???|?1990-01-20?|?女????| +------+--------+------------+-------+ 8?rows?in?set?(0.00?sec)

    2、一份用戶表

    3、一份水果商品價(jià)格表

    下面開(kāi)始介紹不同需求下基于pandas和SQL的取數(shù)實(shí)現(xiàn)

    取出全部數(shù)據(jù)

    SQL實(shí)現(xiàn)

    select?*??from?Student;

    Pandas實(shí)現(xiàn)

    前N條數(shù)據(jù)

    SQL實(shí)現(xiàn)

    查看前5條數(shù)據(jù):

    Pandas實(shí)現(xiàn)

    head方法默認(rèn)是前5條:

    指定查看前7條數(shù)據(jù):

    后N條數(shù)據(jù)

    select?*? from?(select?*?from?Student?order?by?s_id?desc?limit?5)t???--?臨時(shí)結(jié)果表:倒序輸出的最后5條 order?by?s_id;??--?再使用一次排序,將順序還原

    Pandas實(shí)現(xiàn)

    tail方法默認(rèn)是后5條:

    指定查看4條

    切片數(shù)據(jù)

    SQL實(shí)現(xiàn)

    Pandas實(shí)現(xiàn)

    使用pandas中的切片來(lái)查看某個(gè)連續(xù)區(qū)間內(nèi)的數(shù)據(jù):

    取出部分字段

    SQL實(shí)現(xiàn)

    Pandas實(shí)現(xiàn)

    df1[["id","name","sex"]]??#?方式1df2.filter(items=["id","age","createtime"])???#?方式2

    指定等式條件

    SQL實(shí)現(xiàn)

    Pandas實(shí)現(xiàn)

    df1[df1["sex"]?==?"男"]??#?方式1 df1.query('sex=="男"')???#?方式2

    指定id號(hào)或者年齡age:

    指定不等式條件

    SQL實(shí)現(xiàn)

    select?*?from?Student?where?s_sex!=?"男"; select?*?from?user?where?age?>?18; select?*?from?user?where?id?<=?3;?

    Pandas實(shí)現(xiàn)

    取反操作

    SQL實(shí)現(xiàn)

    mysql>?select?*?from?Student?where?s_sex?!=?"男";

    Pandas實(shí)現(xiàn)

    指定多個(gè)條件

    SQL實(shí)現(xiàn)

    select?*?from?Student?where?s_birth?<="1991-01-01"?and??s_sex=?"男"; select?*?from?user?where?age?<?20?and?fee?>?60; select?*?from?user?where?age?<?20?and?fee?>?60;

    Pandas實(shí)現(xiàn)

    指定計(jì)算等式

    SQL實(shí)現(xiàn)

    select?*?from?user?where?age?%?3?=?0;??--?年齡分別是3或者2的倍數(shù) select?*?from?user?where?age?%?2?=?0;??

    Pandas實(shí)現(xiàn)

    模糊查詢

    SQL實(shí)現(xiàn)

    SQL的關(guān)鍵詞是like:

    • 左匹配

    • 右匹配

    • 全匹配

    Pandas實(shí)現(xiàn)

    排序

    默認(rèn)是升序,可以指定為降序

    SQL實(shí)現(xiàn)

    1、單個(gè)字段

    select?*?from?Student?order?by?s_birth?desc;???--?改成升序

    2、多個(gè)字段的排序

    Pandas實(shí)現(xiàn)

    1、單個(gè)字段

    2、多個(gè)字段

    分組統(tǒng)計(jì)

    SQL實(shí)現(xiàn)

    通過(guò)group by 來(lái)進(jìn)行分組統(tǒng)計(jì):

    Pandas實(shí)現(xiàn)

    先看看df3的數(shù)據(jù),一個(gè)水果會(huì)對(duì)應(yīng)多個(gè)價(jià)格,我們水果的名稱對(duì)價(jià)格匯總:

    df3.groupby("name").agg({"price":"sum"}).reset_index()??#?方式1df3.groupby("name")["price"].sum().reset_index()???#?方式2

    取別名

    SQL實(shí)現(xiàn)

    通過(guò)使用as 關(guān)鍵詞:

    select?name?as??水果,?sum(price)?as??價(jià)格?from?products?group?by?name;

    Pandas實(shí)現(xiàn)

    Pandas是通過(guò)rename函數(shù)來(lái)實(shí)現(xiàn)的:

    df3.groupby("name").agg({"price":"sum"}).reset_index().rename(columns={"name":"水果","price":"價(jià)格"}) 往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊(cè)深度學(xué)習(xí)筆記專輯《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯黃海廣老師《機(jī)器學(xué)習(xí)課程》課件合集 本站qq群851320808,加入微信群請(qǐng)掃碼:

    總結(jié)

    以上是生活随笔為你收集整理的【Python】14种方式,34个案例:对比SQL,学习Pandas操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。