Python數據分析中Pandas數據運算實踐

2021-01-11 計算機java編程

本篇將介紹當我們處理完數據後,可以對數據進行的一些計算操作。

本篇文章使用的數據為泰坦尼克的數據集,具體的數據集已經上傳至代碼倉庫,有需要的同學可以自行取用。

在正文內容開始前,小編先把數據中的表名的中英文對照列出來:

PassengerId:乘客IDSurvived:是否倖存Pclass:乘客等級(1/2/3等艙位)Name:姓名Sex:性別Age:年齡SibSp:堂兄弟/妹個數Parch:父母與小孩個數Ticket:船票信息Fare:票價Cabin:客艙Embarked:登船港口預處理

首先,我們拿到數據的第一步是先檢查一下數據質量,通過方法 info() 看下有數據質量:

上面這些數據到底說了個啥?

看過我前面文章的同學應該知道,info() 這個方法經常用作查看數據空值,很不辛,這裡有些屬性的數據不全,如:

Age(年齡)屬性只有714名乘客有記錄Cabin(客艙)更是只有204名乘客是已知的這裡我們進一步使用 describe() 看下這批數據的統計分析數據:

能看出來啥呢?

如果把目光聚焦在 mean 這一行上,可以看到大概 0.383838 的人最後獲救了,在 2 / 3 等倉的人要比 1 等倉的多得多(這不是廢話),平均年齡大概是 29.699118 (這個值計算的時候會忽略掉空值)等等。

算數運算

寫到這裡小編發現個問題,用這份數據演示算數運算屬實有點不大合適,滿臉尷尬。

小編這麼懶的人都寫到這了,肯定是不會換數據集了,各位看官就這麼湊合著看吧,先聲明一下,以下演示均無實際意義。

這一小節的標題是算數運算,那無非是加減乘除嘛,首先來看下兩列相加的示例,這裡是把堂兄弟姐妹和父母小孩加在一起,結果稍微有點意義,這個乘客的所有親屬:

兩列相減,這裡我們使用這個乘客的所有親屬再加上他本身減去存活人數,示例如下:

乘除同理,小編這裡就不演示,各位同學可以自己動手試試。

比較

這裡我們選用存活數和親屬數量做比較,幾個簡單的示例:

同理,這裡除了可以使用 > 還可以使用 >=、 != 、 < 和 <= 等運算符。

統計分析

前面我們使用 describe() 這個方法自動的獲取過當前數據集的一些統計數據,那麼我們如何手動的來獲取它呢?

統計非空值

首先是 count() 統計非空值:

求和

接下來是求和, sum 這個函數想必各位都在 Excel 中用過,那麼在 Pandas 中是如何使用的,請看下面的示例:

可以看到,在進行按列求和的時候, Pandas 把非數值類型的列直接將所有的欄位拼合在了一起,其實無太大意義。

求算數平均值

接下來是求算數平均值,這個函數是 mean() ,算數平均值有一個特點是極易受到極大極小值的影響,就比如我和小馬哥的資產平均超過了 100 億,這個其實和我基本上沒有半毛錢關係。

mean() 實際是上對每一列進行了求平均值的運算,實際上可以通過 axis 參數按行獲取平均值,不過在當前的數據集毫無意義,小編這裡就不演示了。

求最大最小值

接下來是求最大最小值,在 Excel 其實可以直接通過排序來直觀的看到某一列的最大最小值,那麼,一起看一下在 Pandas 是如何獲取這兩個值:

可以看到,在 Pandas 中獲取最大最小值是使用了兩個函數, max() 和 min() ,通過字面意思大家也懂,這裡同樣要提一下是默認是按照列來獲取最大最小值,如果有需要,也可以通過參數 axis 來按照行來獲取。

中位數

相比較前面提到過的算數平均數,中位數是一個非常不錯的反應一組數據的一般情況的一個數據,不易受到極大值和極小值的影響。

在 Pandas 中,獲取中位數是使用 median() 函數:

同樣, median() 函數也可以通過 axis 參數來按照行進行獲取。

眾數

眾數就是出現次數最多的那個數,這裡我們使用到的函數是 mode() :

方差標準差

方差和標準差其實都是用來表示數據的離散程度,標準差是方差的平方根。

在 Pandas 中,計算方差是使用 var() 函數,而計算標準差是使用 std() 函數:

各位閒著沒事兒的同學可以核實一下把標準差平方一下看看是不是方差。

反正小編怕翻車,是專門核實了一下,確實沒有問題,如果哪位同學核實出來有問題,可能是小編這臺電腦有問題。

求分位數

分位數是一種比中位數更加詳細的根據位置的指標,在統計學中,最常用的是四分位數:

第一四分位數(Q1),又稱「較小四分位數」,等於該樣本中所有數值由小到大排列後第 25% 的數字;第二四分位數(Q2),又稱「中位數」,等於該樣本中所有數值由小到大排列後第 50% 的數字;第三四分位數(Q3),又稱「較大四分位數」,等於該樣本中所有數值由小到大排列後第 75% 的數字。在 Pandas 中,獲取分位數是使用 quantile() 函數,但是在使用的過程中,一定要標識清楚去的分位數值:

這裡的驗證可以對比我們前面取出來的中位數,看下是否一致就好,如果不一致,可能需要換電腦了。

相關性

相關性運算是指兩個事務之間的關聯程度,這裡我們可以使用 corr() 函數來進行相關性運算。

使用方式:DataFrame.corr(method='pearson', min_periods=1)

參數說明:

method:可選值為 {'pearson', 'kendall', 'spearman'}

pearson:Pearson相關係數來衡量兩個數據集合是否在一條線上面,即針對線性數據的相關係數計算,針對非線性數據便會有誤差。kendall:用於反映分類變量相關性的指標,即針對無序序列的相關係數,非正太分布的數據spearman:非線性的,非正太分析的數據的相關係數我們一般比較常用的是皮爾遜相關係數:

本篇內容是真的有點長,各位慢慢看吧,小編就先溜了~~~

相關焦點

  • Python數據分析:pandas讀取和寫入數據
    我的公眾號是關於自己在數據分析/挖掘學習過程中的一些技術和總結分享,文章會持續更新......繼續深入學習pandas相關操作,數據讀取寫入、分組、合併,轉換等等。前面一篇文章裡已經寫了關於描述性統計以及常用的基本操作。接下來的一段時間裡,我將陸續地去掌握並輸出。這篇文章是關於數據讀取與寫入的知識點。
  • Python學習120課 pandas簡介kaggle下載數據及pandas讀取外部數據
    【每天幾分鐘,從零入門python編程的世界!】numpy的基本的東西我們學習差不多了,後面具體應用中遇到問題具體分析,然後去深入了解遇到的新的知識點就行。現在我們開始學習pandas,pandas一般用的更多,pandas是基於numpy去寫的。pandas是一個專門做數據結構和數據分析的庫。
  • 懂Excel也能輕鬆入門Python數據分析包pandas(二):高級篩選(上)
    更多 Python 數據處理的乾貨,敬請關注!!!!系列文章:懂Excel就能輕鬆入門Python數據分析包pandas(一):篩選功能前言經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。
  • Python數據分析利器,Pandas入門介紹,幫你便捷高效處理複雜數據
    關於Python的數據分析,當我們遇到的數據量小、數據結構簡單時,可以通過字典、列表等Python常見的數據結構來處理。但是當我們面對的大量數據以及複雜數據的局面時,就需要用一些專門用於數據分析的擴展庫來處理數據了。今天給大家介紹一個Python裡專門用來做數據分析和處理的擴展庫。
  • 數據分析從業者必看,10 個加速 python 數據分析的簡單的小技巧
    其中,有些可能是相當有名的,有些可能是新的,但我相信下次您從事數據分析項目時,它們會非常有用。1.Profiling the pandas dataframeProfiling 是一個幫助我們理解數據的程序,而 Pandas Profiling 正是實現這一點的一個 python 包。
  • 想成為高效數據科學家?不會Pandas怎麼行
    選自 towardsdatascience作者:Félix Revert機器之心編譯參與:Nurhachu Null、張倩Pandas 是為了解決數據分析任務而創建的一種基於 NumPy 的工具包,囊括了許多其他工具包的功能,具有易用、直觀、快速等優點。
  • 數據處理利器Pandas在python中的基本數據操作
    算術運算(+,-,*,/)DataFrame中的算術運算是df中對應位置的元素的算術運算,如果沒有共同的元素,則用NaN代替。此外,如果我們想設置默認的其他填充值,而非NaN的話,可以傳入填充值。具體用法如下:drop_duplicates()drop_duplicates()用於去除重複的行數,具體用法如下:層次化索引層次化索引(hierarchical indexing)是pandas的一項重要功能,它使我們能在一個軸上擁有多個(兩個以上)索引級別。
  • 懂Excel輕鬆入門Python數據分析包pandas(二十七):IF函數代替者
    此系列文章收錄在:數據大宇宙 > 數據處理 > E-pd轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    python教程大合集,包含python所有就業方向,每套課程均來自市面上主流培訓機構的原版教程,價值都在數百元以上 每套課程均包含:視頻課程+課件+原始碼 重要:建議根據自己工作方向和需求,重點選擇2到3套課程學精,吃透,然後在工作 重要:零基礎小白建議先選擇零基礎全能篇的一套課程學精,然後再根據自 己的需求和規劃選擇學習其他方向課程,學完後一定要多實踐
  • 資料|利用Python進行數據分析
    from=leiphonecolumn_res0518以下內容節選自豆瓣:內容簡介 · · · · · ·【名人推薦】「科學計算和數據分析社區已經等待這本書很多年了:大量具體的實踐建議,以及大量綜合應用方法。本書在未來幾年裡肯定會成為Python領域中技術計算的權威指南。」
  • 懂Excel輕鬆入門Python數據分析包pandas(二十一):透視表
    此系列文章收錄在公眾號中:數據大宇宙 > 數據處理 >E-pd經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言本系列上一節文章最後我隨手使用了 pandas 中的透視表操作,之後有些小夥伴詢問我相關的問題。正好 pandas 的 pivot_table 也是與 Excel 透視表對應。本文簡單教你入門使用 pandas 完成透視表功能。
  • python數據分析——pandas導入數據合集
    導入pandas庫import pandas as pd1.導入csv\txt文件數據pd.read_csv()常用參數:filepath_or_buffer:文件路徑(必填,其他參數按需求填寫)sep:指定分隔符,默認逗號','。header:指定第幾行作為表頭。
  • 快速介紹Python數據分析庫pandas的基礎知識和代碼示例
    我創建了這個pandas函數的備忘單。這不是一個全面的列表,但包含了我在構建機器學習模型中最常用的函數。讓我們開始吧!本附註的結構:導入數據導出數據創建測試對象查看/檢查數據選擇查詢數據清理篩選、排序和分組統計數據首先,我們需要導入pandas開始:import pandas as pd導入數據使用函數pd.read_csv直接將CSV轉換為數據格式。注意:還有另一個類似的函數pd。read_excel用於excel文件。
  • python數據分析——pandas導出數據合集
    導入pandas庫:import pandas as pd導入基礎數據:df=pd.read_excel('數據.xlsx')1.將DataFrame寫入csv\txt文件DataFrame.to_csv()常用參數:path_or_buf=None:輸出文件路徑,默認None
  • python數據軸向連接:6種pandas方法及示例教你玩轉軸向連接
    在學習軸向連接數據合併運算前,我們需要先理解,什麼是軸向連接?數據處理與分析,特別是進行數據可視化時,會接觸到x軸或y軸這樣的概念。比如說,x軸代表的年齡,y軸代表的是收入,通常做的數據分析則是不同年齡的人平均收入情況。從這個例子中可以發現,軸代表的是一個變量或者稱為數據表中的一個欄位。而本文中的軸向連接中的」軸向「含義類似,則代表是數據方向,即列,還是行。
  • 數據工程師需要掌握的 18 個 Python 庫
    作者 | 劉早起早起責編 | 屠敏本文對Python中在數據分析中需要掌握的庫進行了整理,一起來看看吧!數據清洗NumPyNumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。對數組執行數學運算和邏輯運算時,NumPy 是非常有用的。在用 Python 對 n 維數組和矩陣進行運算時,NumPy 提供了大量有用特徵。
  • 數據分析實踐入門(四):數據運算
    作者 | CDA數據分析師進行到這一步就可以開始正式的烹飪了。前面我們列舉了不同緯度的分析指標,這一章我們主要看看這些指標都是怎麼計算出來的。一、算術運算算術運算就是基本的加減乘除,在Excel或Python中數值類型的任意兩列可以直接進行加、減、乘、除運算,而且是對應元素進行加、減、乘、除運算,Excel 中的算術運算比較簡單,這裡就不展開了,下面主要介紹Python中的算術運算。列相加的具體實現如下所示。兩列相減的具體實現如下所示。兩列相乘的具體實現如下所示。
  • 懂Excel就能輕鬆入門Python數據分析包pandas(十六):合併數據
    此系列文章收錄在公眾號中:數據大宇宙 > 數據處理 >E-pd經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言本系列上一節說了拆分數據的案例,這次自然是說下怎麼合併數據。
  • 機器學習、深度學習算法原理與案例實踐暨Python大數據綜合應用...
    共4天8節,講解機器學習和深度學習的模型理論和代碼實踐,梳理機器學習、深度學習、計算機視覺的技術框架,從根本上解決如何使用模型、優化模型的問題;每次課中,首先闡述算法理論和少量公式推導,然後使用真實數據做數據挖掘、機器學習、深度學習的數據分析、特徵選擇、調參和結果比較。
  • python時間序列分析之_用pandas中的rolling函數計算時間窗口數據
    上篇文章中,我們講解了如何對時間數據進行重採樣及重採樣中降採樣和升採樣的概覽和使用方法,通過重採樣我們可以得到任何想要頻率的數據,但是這些數據也是一個時點的數據,那麼就存在這樣一個問題:時點的數據波動較大,某一點的數據不能很好的表現它本身的特性,於是我們就想,能否用一個區間的的數據去表現呢,這樣數據的準確性是不是更好一些呢?