Python數據分析利器,Pandas入門介紹,幫你便捷高效處理複雜數據

2021-01-11 紙飛機編程

關於Python的數據分析,當我們遇到的數據量小、數據結構簡單時,可以通過字典、列表等Python常見的數據結構來處理。但是當我們面對的大量數據以及複雜數據的局面時,就需要用一些專門用於數據分析的擴展庫來處理數據了。

今天給大家介紹一個Python裡專門用來做數據分析和處理的擴展庫。

pandas(pannel data analysis,面板數據分析),我個人覺得pandas用於數據分析處理有別於Python字典和列表的主要在於以下三點。

運算效率提升,pandas是基於numpy寫的,換句話說也是c語言進行編寫並編譯成本地庫的,在運算效率會高很多。消耗資源少,因為pandas採用矩陣運算,在算法結構上比列表和字典組合數據消耗更少資源。pandas的矩陣運算可以幫我們結構化成表格數據,省去大量自己拼接表格數據的代碼開銷。

本章知識點:

pandas 安裝和使用pandas 數據結構(Series)pandas 數據結構(DataFrame)

pandas 安裝和使用

通過 pip install pandas可以直接安裝安裝pandas和相關聯的庫。

提示安裝成功之後我們嘗試在編輯器裡 import pandas 並運行,沒有報錯即視為安裝pandas庫成功。

數據結構(Series)

Series是pandas兩個重要數據結構中的其中一個,Series的中文意思為(一系列;連續;接連)。它其實是一個一維數組和另一個一維數組(數據對應的索引index)相結合產生的一個數據結構。

一維數組長什麼樣呢?

[1,2,3,4]這個列表就是一個一維數組。

[[1,2,3,4], [2,3,4,5]]這個列表就是一個二維數組,以此類推。

現在我們通過Series來創建一組數據。

以上三行代碼揭示了如何創建一個Series數據結構。

首先引入pandas的Series包,Series本身也是作為一個類存在的。通過給Series類傳入一個列表(list),得到它的實例化對象,賦值給變量series最後輸出series對象,我們會發現它自動在列表的每一個元素前面加上了索引Series數據結構有什麼實用價值?

Series可以用來存儲一行或一列數據,以及與其相關的索引集合

簡單的說,當我們有一個一維數組數據時,可以通過Series快速方便的幫我們給它加上索引,便於查詢和使用。

大家可以想像成Series可以把一個列表變成一個字典進行訪問。

參考一下例子:

大家可以通過上面的代碼發現:

我們可以通過values直接取出series的所有值,實際上就是一個數組。通過對series取元素key名的方式( series[0] )可以獲得具體的值。可以將series作為一個字典進行遍歷,取出其所有的Key和Value。有朋友可能會疑惑一個問題,series[0]究竟是取的下標位置還是取的Key名?其實我們取的是Key名,因為我們在實例化Series時默認只傳了一個列表參數,所以系統自動幫我們加上了從0開始的key名,現在我們試試自定義Series的Index參數。

Series在實例化時可以接受兩個參數,第一個是值的序列,第二個是索引的序列。

想想我們開始怎麼介紹Series的?Series其實是一個一維數組和另一個一維數組(數據對應的索引index)相結合產生的一個數據結構。

通過字典創建Series

我們同樣可以用字典來創建一個Series,因為它的數據結構和Series的數據結構天然吻合。

如上圖代碼所示,我們在實例化Series時傳一個字典數據進去即可。

Series修改數據

現在我們想設計這麼一個數據結構。

dic1 = {"呂布":100 ,"關羽":100 ,"張飛":100 }

dic2 = {"呂布":100 ,"關羽":100 ,"張飛":100 }

用兩個字典來分別定義三個武將的生命值,然後希望把這兩個字典裡相同key的值進行相加,看看會得到什麼樣的結果。

通過兩個series相加,我們得到了想要的數據。

數據結構(DataFrame)

在pandas中,DataFrame是一個類似於表格的數據結構,它的索引包括 列索引和行索引,包含有一組有序的列,每個列都可以是不同的數據類型(數字、字符串等等)。

簡單的說就是 DataFrame的每一行和每一列都是由Series組成的。

現在讓我們來定義個DataFrame:

通過以上代碼我們利用一個簡單的字典數據結構創建了一個DataFrame,輸出內容也像極了表格。

第一列默認是行號索引,第二列到第四列分別是我們之前定義的數據。

開始我們講到在DataFrame中每一行或者每一列數據都是一個Series,現在我們通過以下代碼來驗證這個說法。

如上圖所示,我們通過對DataFrame對象取key名的方式得到一個Series對象,然後就可以對Series對象進行各種操作了。

修改DataFrame的數據

現在我們希望把所有人的生命值都調整到100,參考下列代碼。

如上圖所示,通過對 df[Key名]的內容進行直接賦值,可以修改整個Series的值。

我們同樣可以用 df.生命值 = 100的語法來進行賦值,DataFrame已經自動幫我們把Key名轉換為對象的屬性了。

導出DataFrame表格數據

如果我們希望將DataFrame的數據導出成表格文件,pandas也同樣支持,我們可以通過很簡單的語法即可實現。

DataFrame.to_csv(文件名)即可將數據導出為一個csv文件。

讓我們來看看導出文件在表格軟體裡的展現。

一般情況下,我們只能通過DataFrame進行csv文件的導出,不支持對Series導出。

總結:

今天給大家簡單介紹了pandas兩種數據結構Series、DataFrame的用處,這對於我們如何理解pandas進行數據分析是一個好的開始,不過對於完整的學習pandas來說還遠遠不夠,我們將在以後的章節裡繼續學習pandas的各種知識,把它變成我們的數據分析利器,更好的應用於工作當中。

文章最後我會用一個思維導圖來總結本章的知識點:

歡迎關注我 「紙飛機編程」,獲取更多有趣的Python編程信息。

相關焦點

  • 懂Excel也能輕鬆入門Python數據分析包pandas(二):高級篩選(上)
    更多 Python 數據處理的乾貨,敬請關注!!!!系列文章:懂Excel就能輕鬆入門Python數據分析包pandas(一):篩選功能前言經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。
  • Python數據分析:pandas讀取和寫入數據
    我的公眾號是關於自己在數據分析/挖掘學習過程中的一些技術和總結分享,文章會持續更新......繼續深入學習pandas相關操作,數據讀取寫入、分組、合併,轉換等等。前面一篇文章裡已經寫了關於描述性統計以及常用的基本操作。接下來的一段時間裡,我將陸續地去掌握並輸出。這篇文章是關於數據讀取與寫入的知識點。
  • 懂Excel輕鬆入門Python數據分析包pandas(二十七):IF函數代替者
    此系列文章收錄在:數據大宇宙 > 數據處理 > E-pd轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。
  • 懂Excel就能輕鬆入門Python數據分析包pandas(十六):合併數據
    此系列文章收錄在公眾號中:數據大宇宙 > 數據處理 >E-pd經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言本系列上一節說了拆分數據的案例,這次自然是說下怎麼合併數據。
  • Python學習120課 pandas簡介kaggle下載數據及pandas讀取外部數據
    【每天幾分鐘,從零入門python編程的世界!】numpy的基本的東西我們學習差不多了,後面具體應用中遇到問題具體分析,然後去深入了解遇到的新的知識點就行。現在我們開始學習pandas,pandas一般用的更多,pandas是基於numpy去寫的。pandas是一個專門做數據結構和數據分析的庫。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    22機器學習 23深度學習 24數據結構和算法 25python網絡爬蟲 26機器學習入門篇 27機器學習入門篇2 28機器學習提升篇 29數據挖掘篇 30深度學習必備原理與實戰 31深度學習必備原理與實戰2 32深度學習必備原理與實戰3
  • 想成為高效數據科學家?不會Pandas怎麼行
    選自 towardsdatascience作者:Félix Revert機器之心編譯參與:Nurhachu Null、張倩Pandas 是為了解決數據分析任務而創建的一種基於 NumPy 的工具包,囊括了許多其他工具包的功能,具有易用、直觀、快速等優點。
  • 懂Excel就能輕鬆入門Python數據分析包pandas(七):分列
    經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言今天從兩個需求來看看數據分列功能,由於 Excel 自帶功能比較弱,在處理稍微複雜的需求時會顯得力不從心,因此,本系列文章將引入 Excel 中一個非常高效的數據處理插件—— Power Query,並且看看 pandas 是怎樣靈活解決。
  • 懂Excel輕鬆入門Python數據分析包pandas(二十一):透視表
    此系列文章收錄在公眾號中:數據大宇宙 > 數據處理 >E-pd經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言本系列上一節文章最後我隨手使用了 pandas 中的透視表操作,之後有些小夥伴詢問我相關的問題。正好 pandas 的 pivot_table 也是與 Excel 透視表對應。本文簡單教你入門使用 pandas 完成透視表功能。
  • pandas指南:做更高效的數據科學家
    如果你是Python新手,很難知道針對特定任務的包哪個是最好的。你需要有經驗的人來告訴你。今天我要告訴你們的是:在數據科學中,有一個軟體包是你們絕對需要學習的,那就是pandas。而pandas真正有趣的地方是,很多其他的包也在裡面。pandas是一個核心包,因此它具有來自其他各種包的特性。
  • 使用pandas和openpyxl處理複雜Excel數據
    關於Excel數據處理,很多同學可能使用過Pyhton的pandas模塊,用它可以輕鬆地讀取和轉換Excel數據。但是實際中Excel表格結構可能比較雜亂,數據會分散不同的工作表中,而且在表格中分布很亂,這種情況下啊直接使用pandas就會非常吃力。本文蟲蟲給大家介紹使用pandas和openpyxl讀取這樣的數據的方法。
  • 教程| pandas輕鬆入門 之 數據結構介紹 1
    訪問flyai.club,一鍵創建你的人工智慧項目Pandas含有使數據清洗和分析工作變得更快更簡單的數據結構和操作工具。pandas經常和其它工具一同使用,如數值計算工具NumPy和SciPy,分析庫statsmodels和scikit-learn,和數據可視化庫matplotlib。
  • 快速介紹Python數據分析庫pandas的基礎知識和代碼示例
    我創建了這個pandas函數的備忘單。這不是一個全面的列表,但包含了我在構建機器學習模型中最常用的函數。讓我們開始吧!本附註的結構:導入數據導出數據創建測試對象查看/檢查數據選擇查詢數據清理篩選、排序和分組統計數據首先,我們需要導入pandas開始:import pandas as pd導入數據使用函數pd.read_csv直接將CSV轉換為數據格式。注意:還有另一個類似的函數pd。read_excel用於excel文件。
  • PySpark源碼解析,用Python調用高效Scala接口,搞定大規模數據分析
    然而,在數據科學領域,Python 一直佔據比較重要的地位,仍然有大量的數據工程師在使用各類 Python 數據處理和科學計算的庫,例如 numpy、Pandas、scikit-learn 等。同時,Python 語言的入門門檻也顯著低於 Scala。
  • 數據分析從業者必看,10 個加速 python 數據分析的簡單的小技巧
    其中,有些可能是相當有名的,有些可能是新的,但我相信下次您從事數據分析項目時,它們會非常有用。1.Profiling the pandas dataframeProfiling 是一個幫助我們理解數據的程序,而 Pandas Profiling 正是實現這一點的一個 python 包。
  • 數據處理利器Pandas在python中的基本數據操作
    具體用法如下:drop_duplicates()drop_duplicates()用於去除重複的行數,具體用法如下:層次化索引層次化索引(hierarchical indexing)是pandas的一項重要功能,它使我們能在一個軸上擁有多個(兩個以上)索引級別。
  • 數據太多而無法使用?快試試這個Kaggle大數據集高效訪問教程
    對數據科學家和Kaggler來說,數據永遠不嫌多。我敢肯定,你在解決某些問題時,一定報怨過沒有足夠的數據,但偶爾也會抱怨數據量太多難以處理。本文探討的問題就是對超大規模數據集的處理。同時,你還會發現,對於不同數據集或不同環境,最有效的方法往往是不同的,也就是所,沒有哪一種方法就是萬能的。後續會陸續添加新的數據讀取方法。方法我們首先使用Notebook默認的pandas方法,如前文所述,這樣的讀取因內存不足失敗。
  • 資料|利用Python進行數據分析
    ——Fernando Pérez 加州大學伯克利分校 研究科學家, IPython的創始人之一【內容簡介】還在苦苦尋覓用Python控制、處理、整理、分析結構化數據的完整課程?本書含有大量的實踐案例,你將學會如何利用各種Python庫(包括NumPy、pandas、matplotlib以及IPython等)高效地解決各式各樣的數據分析問題。
  • 數據工程師需要掌握的 18 個 Python 庫
    作者 | 劉早起早起責編 | 屠敏本文對Python中在數據分析中需要掌握的庫進行了整理,一起來看看吧!所以使用 pip install Twisted-18.9.0-cp37-cp37m-win32.whl 來安裝,然後使用pip install scrapy 來安裝scrapy就可以了數據獲取Beautiful SoupBeautiful Soup也是一個從網站爬取數據的庫,他提供一些簡單的、python式的函數用來處理導航、搜索、修改分析樹等功能。
  • 學習筆記,從NumPy到Scrapy,學習Python不能錯過這些庫
    numpy庫可以用來存儲和處理大型矩陣,並且在一定程度上彌補了python在運算效率上的不足,正是因為numpy的存在使得python成為數值計算領域的一大利器;2. SciPy SciPy和Numpy聯繫很密切,Scipy一般都是操控Numpy數組來進行科學計算,所以可以說是基於Numpy之上了。