1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        數(shù)據(jù)分析之 Pandas VS SQL

        共 1910字,需瀏覽 4分鐘

         ·

        2020-12-27 04:34

        作者:寶器

        轉(zhuǎn)自:愛德寶器


        Abstract


        • Pandas是一個(gè)開源的Python數(shù)據(jù)分析庫(kù),結(jié)合 NumPy 和 Matplotlib 類庫(kù),可以在內(nèi)存中進(jìn)行高性能的數(shù)據(jù)清洗、轉(zhuǎn)換、分析及可視化工作。

        • 對(duì)于數(shù)據(jù)開發(fā)工程師或分析師而言,SQL 語(yǔ)言是標(biāo)準(zhǔn)的數(shù)據(jù)查詢工具。本文提供了一系列的示例,說(shuō)明如何使用pandas執(zhí)行各種SQL操作。


        Pandas簡(jiǎn)介?


        Pandas把結(jié)構(gòu)化數(shù)據(jù)分為了三類:

        • Series,可以理解為一個(gè)一維的數(shù)組,只是index可以自己改動(dòng)。

        • DataFrame,一個(gè)類似于表格的數(shù)據(jù)類型的2維結(jié)構(gòu)化數(shù)據(jù)。

        • Panel,3維的結(jié)構(gòu)化數(shù)據(jù)。

        Dataframe實(shí)例:

        對(duì)于DataFrame,有一些固有屬性:


        SQL VS Pandas


        SELECT(數(shù)據(jù)選擇)

        在SQL中,選擇是使用逗號(hào)分隔的列列表(或*來(lái)選擇所有列):

        在Pandas中,選擇不但可根據(jù)列名稱選取,還可以根據(jù)列所在的位置選取。相關(guān)語(yǔ)法如下:

        • loc,基于列l(wèi)abel,可選取特定行(根據(jù)行index)

        • iloc,基于行/列的位置

        • ix,為loc與iloc的混合體,既支持label也支持position

        • at,根據(jù)指定行index及列l(wèi)abel,快速定位DataFrame的元素;

        • iat,與at類似,不同的是根據(jù)position來(lái)定位的;

        WHERE(數(shù)據(jù)過(guò)濾)

        在SQL中,過(guò)濾是通過(guò)WHERE子句完成的:

        在pandas中,Dataframe可以通過(guò)多種方式進(jìn)行過(guò)濾,最直觀的是使用布爾索引:

        在where子句中常常會(huì)搭配and, or, in, not關(guān)鍵詞,Pandas中也有對(duì)應(yīng)的實(shí)現(xiàn):

        SQL:

        Pandas:

        在where字句中搭配NOT NULL可以獲得某個(gè)列不為空的項(xiàng),Pandas中也有對(duì)應(yīng)的實(shí)現(xiàn):

        SQL:

        Pandas:


        DISTINCT(數(shù)據(jù)去重)

        SQL:

        Pandas:

        寶器帶你畫重點(diǎn)

        • subset,為選定的列做數(shù)據(jù)去重,默認(rèn)為所有列;

        • keep,可選擇{'first', 'last', False},保留重復(fù)元素中的第一個(gè)、最后一個(gè),或全部刪除;

        • inplace ,Pandas 中 inplace 參數(shù)在很多函數(shù)中都會(huì)有,它的作用是:是否在原對(duì)象基礎(chǔ)上進(jìn)行修改,默認(rèn)為False,返回一個(gè)新的Dataframe;若為True,不創(chuàng)建新的對(duì)象,直接對(duì)原始對(duì)象進(jìn)行修改。

        GROUP BY(數(shù)據(jù)分組)

        groupby()通常指的是這樣一個(gè)過(guò)程:我們希望將數(shù)據(jù)集拆分為組,應(yīng)用一些函數(shù)(通常是聚合),然后將這些組組合在一起:

        常見的SQL操作是獲取數(shù)據(jù)集中每個(gè)組中的記錄數(shù)。

        Pandas中對(duì)應(yīng)的實(shí)現(xiàn):

        注意,在Pandas中,我們使用size()而不是count()。這是因?yàn)閏ount()將函數(shù)應(yīng)用于每個(gè)列,返回每個(gè)列中的非空記錄的數(shù)量。具體如下:

        還可以同時(shí)應(yīng)用多個(gè)函數(shù)。例如,假設(shè)我們想要查看每個(gè)星期中每天的小費(fèi)金額有什么不同。

        SQL:

        Pandas:

        JOIN(數(shù)據(jù)合并)

        • 可以使用join()或merge()執(zhí)行連接。

        • 默認(rèn)情況下,join()將聯(lián)接其索引上的DataFrames。

        • 每個(gè)方法都有參數(shù),允許指定要執(zhí)行的連接類型(LEFT, RIGHT, INNER, FULL)或要連接的列(列名或索引)

        現(xiàn)在看一下不同的連接類型的SQL和Pandas實(shí)現(xiàn):

        • INNER JOIN

        SQL:

        Pandas:

        • LEFT OUTER JOIN

        SQL:

        Pandas:

        • RIGHT JOIN

        SQL:

        Pandas:

        • FULL JOIN

        SQL:

        Pandas:

        ORDER(數(shù)據(jù)排序)

        SQL:

        Pandas:

        UPDATE(數(shù)據(jù)更新)

        SQL:

        Pandas:

        DELETE(數(shù)據(jù)刪除)

        SQL:

        Pandas:


        總結(jié):

        本文從Pandas里面基本數(shù)據(jù)結(jié)構(gòu)Dataframe的固定屬性開始介紹,對(duì)比了做數(shù)據(jù)分析過(guò)程中的一些常用SQL語(yǔ)句的Pandas實(shí)現(xiàn)。

        參考:

        http://m.v.qq.com/play/play.htmlcoverid=&vid=q0836f6kewx&ptag=4_6.7.0.22106_qq


        往期精彩:

        【原創(chuàng)首發(fā)】機(jī)器學(xué)習(xí)公式推導(dǎo)與代碼實(shí)現(xiàn)30講.pdf

        【原創(chuàng)首發(fā)】深度學(xué)習(xí)語(yǔ)義分割理論與實(shí)戰(zhàn)指南.pdf

        ?談中小企業(yè)算法崗面試

        ?算法工程師研發(fā)技能表

        ?真正想做算法的,不要害怕內(nèi)卷

        ?技術(shù)學(xué)習(xí)不能眼高手低

        ?技術(shù)人要學(xué)會(huì)自我營(yíng)銷

        ?做人不能過(guò)擬合

        求個(gè)在看

        瀏覽 65
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            免费色色| 91精品综合明星换脸 | 老师下面好紧 | 白丝校花被狂揉大胸 | 亚洲欧美成人网 | 欧美艳妇 | 蜜臀av在线播放一区二区三区 | 又大又黄又爽 | 国产伦理片在线播放 | 逼逼操逼逼 |