中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據分析之Pandas VS SQL!

發布時間:2020-08-10 23:06:20 來源:ITPUB博客 閱讀:255 作者:zone7 欄目:編程語言

編輯:zone

來源:數據管道

作者:艾德寶器

Abstract

  • Pandas是一個開源的Python數據分析庫,結合 NumPy 和 Matplotlib 類庫,可以在內存中進行高性能的數據清洗、轉換、分析及可視化工作。

  • 對于數據開發工程師或分析師而言,SQL 語言是標準的數據查詢工具。本文提供了一系列的示例,說明如何使用pandas執行各種SQL操作。

Pandas簡介 

Pandas把結構化數據分為了三類:

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

  • DataFrame,一個類似于表格的數據類型的2維結構化數據。

  • Panel,3維的結構化數據。

Dataframe實例:

數據分析之Pandas VS SQL!

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

數據分析之Pandas VS SQL!

SQL VS Pandas

SELECT(數據選擇)

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

數據分析之Pandas VS SQL!

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

  • loc,基于列label,可選取特定行(根據行index)

  • iloc,基于行/列的位置

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

  • at,根據指定行index及列label,快速定位DataFrame的元素;

  • iat,與at類似,不同的是根據position來定位的;

數據分析之Pandas VS SQL!
數據分析之Pandas VS SQL!
數據分析之Pandas VS SQL!

WHERE(數據過濾)

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

數據分析之Pandas VS SQL!

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

數據分析之Pandas VS SQL!

在where子句中常常會搭配and, or, in, not關鍵詞,Pandas中也有對應的實現:

SQL:

數據分析之Pandas VS SQL!

Pandas:

數據分析之Pandas VS SQL!

在where字句中搭配NOT NULL可以獲得某個列不為空的項,Pandas中也有對應的實現:

SQL:

數據分析之Pandas VS SQL!

Pandas:

數據分析之Pandas VS SQL!


DISTINCT(數據去重)

SQL:

數據分析之Pandas VS SQL!

Pandas:

數據分析之Pandas VS SQL!

寶器帶你畫重點

  • subset,為選定的列做數據去重,默認為所有列;

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

  • inplace ,Pandas 中 inplace 參數在很多函數中都會有,它的作用是:是否在原對象基礎上進行修改,默認為False,返回一個新的Dataframe;若為True,不創建新的對象,直接對原始對象進行修改。

GROUP BY(數據分組)

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

數據分析之Pandas VS SQL!

常見的SQL操作是獲取數據集中每個組中的記錄數。

數據分析之Pandas VS SQL!

Pandas中對應的實現:

數據分析之Pandas VS SQL!

注意,在Pandas中,我們使用size()而不是count()。這是因為count()將函數應用于每個列,返回每個列中的非空記錄的數量。具體如下:

數據分析之Pandas VS SQL!

還可以同時應用多個函數。例如,假設我們想要查看每個星期中每天的小費金額有什么不同。

SQL:

數據分析之Pandas VS SQL!

Pandas:

數據分析之Pandas VS SQL!

更多關于Groupy和數據透視表內容請閱讀

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

JOIN(數據合并)

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

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

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

數據分析之Pandas VS SQL!

現在看一下不同的連接類型的SQL和Pandas實現:

  • INNER JOIN

SQL:

數據分析之Pandas VS SQL!

Pandas:

數據分析之Pandas VS SQL!
  • LEFT OUTER JOIN

SQL:

數據分析之Pandas VS SQL!

Pandas:

數據分析之Pandas VS SQL!
  • RIGHT JOIN

SQL:

數據分析之Pandas VS SQL!

Pandas:

數據分析之Pandas VS SQL!
  • FULL JOIN

SQL:

數據分析之Pandas VS SQL!

Pandas:

數據分析之Pandas VS SQL!

ORDER(數據排序)

SQL:

數據分析之Pandas VS SQL!

Pandas:

數據分析之Pandas VS SQL!

UPDATE(數據更新)

SQL:

數據分析之Pandas VS SQL!

Pandas:

數據分析之Pandas VS SQL!

DELETE(數據刪除)

SQL:

數據分析之Pandas VS SQL!

Pandas:

數據分析之Pandas VS SQL!


總結:

本文從Pandas里面基本數據結構Dataframe的固定屬性開始介紹,對比了做數據分析過程中的一些常用SQL語句的Pandas實現。

參考:

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

陆川县| 阆中市| 清徐县| 碌曲县| 陈巴尔虎旗| 会泽县| 曲靖市| 龙南县| 嘉定区| 黎城县| 清镇市| 垦利县| 荃湾区| 万盛区| 新绛县| 通江县| 抚顺县| 镇远县| 甘南县| 余干县| 东莞市| 错那县| 图木舒克市| 峡江县| 紫金县| 丰都县| 东平县| 沈丘县| 静宁县| 万山特区| 昭苏县| 辉南县| 奉新县| 建湖县| 汨罗市| 渭南市| 本溪市| 公主岭市| 庄河市| 天水市| 潼关县|