數(shù)據(jù)分析之PandasVSSQL!-創(chuàng)新互聯(lián)

編輯:zone

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比關(guān)嶺網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式關(guān)嶺網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋關(guān)嶺地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。

來源:數(shù)據(jù)管道

作者:艾德寶器

Abstract

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

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

Pandas簡介

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

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

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

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

Dataframe實(shí)例:

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

對于DataFrame,有一些固有屬性:

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

SQL VS Pandas

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

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

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

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

  • 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來定位的;

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

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

在SQL中,過濾是通過WHERE子句完成的:

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

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

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

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

SQL:

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

Pandas:

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

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

SQL:

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

Pandas:

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

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

SQL:

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

Pandas:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SQL:

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

Pandas:

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

更多關(guān)于Groupy和數(shù)據(jù)透視表內(nèi)容請閱讀:

  • 這些祝福和干貨比那幾塊錢的紅包重要的多!

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

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

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

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

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

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

  • INNER JOIN

SQL:

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

Pandas:

數(shù)據(jù)分析之Pandas VS SQL!
  • LEFT OUTER JOIN

SQL:

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

Pandas:

數(shù)據(jù)分析之Pandas VS SQL!
  • RIGHT JOIN

SQL:

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

Pandas:

數(shù)據(jù)分析之Pandas VS SQL!
  • FULL JOIN

SQL:

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

Pandas:

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

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

SQL:

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

Pandas:

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

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

SQL:

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

Pandas:

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

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

SQL:

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

Pandas:

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

總結(jié):

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

參考:

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

當(dāng)前文章:數(shù)據(jù)分析之PandasVSSQL!-創(chuàng)新互聯(lián)
URL標(biāo)題:http://muchs.cn/article4/cocjie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈標(biāo)簽優(yōu)化、網(wǎng)站排名、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)