熱線電話:13121318867

登錄
首頁精彩閱讀Python數據分析入門教程(四):數值操作
Python數據分析入門教程(四):數值操作
2020-03-30
收藏
Python數據分析入門教程(四):數值操作

作者 | CDA數據分析師


我們把菜品挑選出來以后,就可以開始切菜了。比如要做涼拌黃瓜絲,把黃瓜找出來以后,那就可以把黃瓜切成絲了。


一、數值替換


數值替換就是將數值A替換成B,可以用在異常值替換處理、缺失值填充處理中。主要有一對一替換、多對一替換、多對多替換三種替換方法。


1、一對一替換


一對一替換是將某一塊區域中的一個值全部替換成另一個值。已知現在有一個年齡值是240,很明顯這是一個異常值,我們要把它替換成一個正常范圍內的年齡值(用正常年齡的均值33),怎么實現呢?


(1)Excel實現


在Excel中對某個值進行替換,首先要把待替換的區域選中,如果只是替換某一列中的值,只需要選中這一列即可;如果要在這一片區域中進行替換,那么拖動鼠標選中這一片區域。然后依次單擊編輯菜單欄中的查找和選擇>;替換選項(如下圖所示)即可調出替換界面。使用快捷鍵Ctrl+H也可以調出替換界面。


Python數據分析入門教程(四):數值操作


下圖為替換界面,分別輸入查找內容和替換內容,然后根據需要單擊全部替換或者替換全部即可。


Python數據分析入門教程(四):數值操作


(2)Python實現


python中對某個值進行替換利用的是replace()方法,replace(A,B)表示將A替換成B。


Python數據分析入門教程(四):數值操作


上面的代碼是對年齡這一列進行替換,所以把年齡這一列選中,然后調用replace()方法。有時候要對整個表進行替換,比如對全表中的缺失值進行替換,這個時候replace()方法就相當于fillna()方法了。


Python數據分析入門教程(四):數值操作


Python數據分析入門教程(四):數值操作


Np.NaN是python中對缺失值的一種表示方法。


2、多對一替換


多對一替換就是把一塊區域中的多個值替換成某一個值,已知現在有三個異常年齡(240、260、280)需要把這三個年齡都替換成正常范圍年齡的平均值33,該怎么實現呢?


(1)Excel實現


在Excel中需要借助if函數來實現多對一替換。一直年齡這一列是D列,要想對這個異常值進行替換,可以通過如下函數實現。


Python數據分析入門教程(四):數值操作


上面的公式借助了Excel中的OR()函數,表示如果D列等于240、260、或者280時,該單元格的值為33,否則為D列的值。替換后的結果如下圖所示。


Python數據分析入門教程(四):數值操作


(2)Python實現


在 Python 中實現多對一的替換比較簡單,同樣也是利用replace()方法,replace([A,B],C)表示將A、B替換成C。


Python數據分析入門教程(四):數值操作


3、多對多替換


多對多替換其實就是某個區域中多個一對一的替換。比如將年齡異常值240替換成平均值減一,260替換成平均值,280替換成平均值加一,該怎么實現呢?


(1)Excel實現


若想在Excel中實現,需要借助函數,且需要多個if嵌套語句來實現,同時已知年齡列為D列,具體函數如下:


Python數據分析入門教程(四):數值操作


下圖為該函數執行的流程。


Python數據分析入門教程(四):數值操作


替換后的結果如下圖所示:


Python數據分析入門教程(四):數值操作


(2)Python實現


在Python中若想實現多對多的替換,同樣是借助replace()方法,將替換值與待替換值用字典的形式表示,replace(“A”:“a”,“B”:“b”)表示用a替換A,用b 替換B。


Python數據分析入門教程(四):數值操作


二、數值排序


數值排序是按照具體數值的大小進行排序的,有升序和降序兩種,升序就是數值由小到大排列,降序是數值由大到小排列。


1、按照一列數值進行排序


按照一列數值進行排序就是整個數據表都以某一列為準,進行升序或者降序排列。


(1)Excel實現


在Excel中想要按照某列進行數值排序,只要選中這一列的字段名,然后單擊編輯菜單欄下的排序和篩選按鈕;在下拉菜單中選擇升序或者降序選項即可,操作流程如下圖所示。


Python數據分析入門教程(四):數值操作


按照銷售ID進行升序排列前后的結果如下圖所示:


Python數據分析入門教程(四):數值操作


(2)Python實現


在Python中我們若想按照某列進行排序,需要用到sort_values()方法,在sort_values后的括號中指明要排序的列名,以及升序還是降序排序。


Python數據分析入門教程(四):數值操作


上面代碼表示df表按照col1列進行排序,ascending = False表示按照col1列進行降序排列。Ascending參數默認值為True,表示升序排列。所以,如果是要根據col1進行升序排序,則可以只指明列名,不需要額外聲明排序方式。


Python數據分析入門教程(四):數值操作


Python數據分析入門教程(四):數值操作


2、按照有缺失值的列進行排序


(1)Python實現


在Python中,當待排序的列中有缺失值時,可以通過設置na_position參數對缺失值的顯示位置進行設置,默認參數值為last,可以不寫,表示將缺失值顯示在最后。


Python數據分析入門教程(四):數值操作


通過設置na_position參數將缺失值顯示在最前面。


Python數據分析入門教程(四):數值操作


3、按照多列數值進行排序


按照多列數值排序是指同時依據多列數據進行升序、降序排序,當第一列出現重復值時按照第二列進行排序,當第二天出現重復值時按照第三列進行排序,以此類推。


(1)Excel實現


在Excel中實現按照多列排序,選中待排序的所有數據,單擊編輯菜單欄下的排序和篩選按鈕,在下拉菜單中選擇自定義排序選項就會出現如下圖所示界面。添加條件就是添加按照排序的列,在次序里面可以單獨定義每一列的升序或者降序。


Python數據分析入門教程(四):數值操作


舉個例子,對下圖左側的Before表先按照銷售ID升序排列,當遇到重復的銷售ID時,再按成交時間降序排列,得出下圖右側的After表。


Python數據分析入門教程(四):數值操作


(2)Python實現


在Python中實現按照多列進行排序,用到的方法同樣是sort_values(),只要sort_values()后的括號中以列表的形式指明要排序的多列列名及每列的排序方式即可。


Python數據分析入門教程(四):數值操作


上面代碼表示df表現按照col1列進行升序排列,當col1 列遇到重復值時,再按照col2列進行降序排列。對于表df我們依舊先按照銷售ID升序排列,當遇到重復的銷售ID時,再按照成交時間降序排列,代碼如下圖所示:


Python數據分析入門教程(四):數值操作


三、數值排名


數值排名和數值排序是相對應的,排名會新增一列,這一列用來存放數據的排名情況,排名是從1開始的


(1)Excel實現


在Excel中用于排名的函數有RANK.AVG()和RANK.EQ()兩個。


當待排名的數值沒有重復值時,這兩個函數的效果是完全一樣的,兩個函數的不同在于處理重復值方式不同。


●RANK.AVG(number,ref,order)


number表示待排名的數值,ref表示一整列數值的范圍,order用來指明降序還是升序排名。當待排名的數值由重復值時,返回重復值的平均排名。


對銷售ID進行平均排名以后的結果如下圖所示。圖中銷售ID為1的值有兩個,假設一個排名是1,另一個排名是2,那么二者的均值就是1.5,所以平均排名就是1.5;銷售ID為2的值同樣有兩個,同樣假設一個排名為3 ,另一個排名為4,那么二者的均值是3.5;銷售ID為3的值沒有重復值,所以排名就是5。


Python數據分析入門教程(四):數值操作


●RANK.EQ(number,ref,order)


RANK.EQ的參數與RANK.AVG的意思是一樣的。當待排名的數值有重復值時,RANK.EQ返回重復值的最佳排名。


對銷售ID進行最佳排名以后的結果如下圖所示。圖中銷售ID為1的值有兩個,第一個重復值的排名為1,所以兩個值的最佳排名均為1 ;銷售ID為2的值也有兩個,第一個重復值的排名為3,所以兩個值的最佳排名均為3,;銷售ID為3的值沒有重復值,最佳排名為5。


Python數據分析入門教程(四):數值操作


(2)Python實現


在Python中對數值進行排名,小用到rank()方法。Rank()方法主要有兩個參數,一個是ascending,用來指明升序排列還是降序排列,默認升序排列,和Excel中的order的意思一致;另一個是method,用來指明待排列值有重復值時的處理情況。下表是參數method可取的不同參數值及說明。


Python數據分析入門教程(四):數值操作


method取值為average時的排名情況,與Excel中RANK.AVG函數一致。


Python數據分析入門教程(四):數值操作


method取值為first時的排名情況,銷售ID為1的值有兩個,第一個出現的排名為1,第二個出現的排名為2;銷售ID為2的以此類推。


Python數據分析入門教程(四):數值操作


method取值為min時的排名情況,與Excel中RANK.EQ函數一致。


Python數據分析入門教程(四):數值操作


method取值為max時的排名情況,與method取值min時相反,銷售ID為1的值有兩個,第二個重復值的排名為2,所以兩個值的排名均為2;銷售ID為2的值有兩個,兩個重復值的排名為4,所以兩個值的排名均為4。


Python數據分析入門教程(四):數值操作


四、數值刪除


數值刪除是對數據表中一些無用的數據進行刪除操作。


1、刪除列


(1)Excel實現


在Excel中,要刪除某一列或某幾列,只需要選中這些列,然后單擊鼠標右鍵,在彈出的菜單中選擇刪除選項即可(或者單擊鼠標右鍵以后按D鍵),如下圖所示。


Python數據分析入門教程(四):數值操作


(2)Python實現


在Python中,要刪除某列,用到的是drop()方法,即在drop方法后的括號中指明要刪除的列名或者列的位置,即第幾列。


在drop方法后的括號中直接傳入待刪除列的列名,需要加一個參數axis,并讓其參數值等于1,表示刪除列。


Python數據分析入門教程(四):數值操作


Python數據分析入門教程(四):數值操作


還可以在drop方法后的括號中直接傳入待刪除列的位置,但也需要用axis參數。


Python數據分析入門教程(四):數值操作


也可以將列名以列表的形式傳給columns參數,這個時候就不需要axis參數了。


Python數據分析入門教程(四):數值操作


2、刪除行


(1)Excel實現


在 Excel 中,要刪除某些行使用的方法與刪除列是一致的,先選中要刪除的行,然后單擊鼠標右鍵,在彈出的下拉菜單中選擇刪除選項就可以刪除行了。


(2)Python實現


在Python中,要刪除某些行用到的方法依然是drop(),與刪除列類似的是,刪除行也要指明行相關的信息。


在drop方法后的括號中直接傳入待刪除行的行名,并讓axis參數值等于0,表示刪除行。


Python數據分析入門教程(四):數值操作


除了傳入行索引名稱,還可以在drop方法后的括號中直接傳入待刪除行的行號,也需要用axis參數,并讓其參數值等于0。


Python數據分析入門教程(四):數值操作


也可以將待刪除行的行名傳給index參數,這個時候就不需要axis參數了。


Python數據分析入門教程(四):數值操作


3、刪除特定行


刪除特定行一般指刪除滿足某個條件的行,我們前面的異常值刪除算是刪除特定的行。


(1)Excel實現


在Excel中刪除特定行分為兩步,第一步先將符合條件的行篩選出來,第二步選中這些篩選出來的行然后單擊鼠標右鍵,在彈出的下拉菜單中選擇刪除選項。


(2)Python實現


在Python中刪除特定行使用的方法有些特殊,我們不直接刪除滿足條件的值,而是把不滿足條件的值篩選出來作為新的數據源,這樣就把要刪除的行過濾掉了。


在如下例子中,要刪除年齡值大于等于40對應的行,我們并不直接刪除這一部分,而是把它的相反部分取出來,即把年齡小于40的行篩選出來作為新的數據源。


Python數據分析入門教程(四):數值操作


五、數值計數


數值計數就是計算某個值在一系列數值中出現的次數。


(1)Excel實現


在Excel中實現數值計數,我們使用的是COUNTIF()函數,COUNTIF()函數用來計算某個區域中滿足給定條件的單元格數目。


Python數據分析入門教程(四):數值操作


range表示一系列值的范圍,criteria表示某一個值或者某一個條件。


銷售ID的值的計數結果如下圖所示。銷售ID為1的值在F2:F6這個范圍內出現了兩次;銷售ID為2的值在該范圍內也出現了兩次;銷售ID為3的值出現了1次。


Python數據分析入門教程(四):數值操作


(2)Python實現


在Python中,要對某些值的出現次數進行計數,我們用到的方法是value_counts()。


Python數據分析入門教程(四):數值操作


Python數據分析入門教程(四):數值操作


上面代碼運行的結果表示銷售ID為2的值出現了兩次,銷售ID為1的值出現了兩次,銷售ID為3的值出現了1次。這些是值出現的絕對次數,還可以看一下不同值出現的占比,只需要給value_counts()方法傳入參數normalize = True即可。


Python數據分析入門教程(四):數值操作


上面代碼的運行結果表示銷售ID為2的值的占比為0.4,銷售ID為1的值的占比為0.4,銷售ID為3的值的占比為0.2。上面銷售ID的排序是2、1、3,這是按照計數值降序排列的(0.4、0.4、0.2),通過設置sort=False可以實現不按計數值降序排列。


Python數據分析入門教程(四):數值操作


六、唯一值獲取


唯一值獲取就是把某一系列值刪除重復項以后的結果,一般可以將表中某一列認為是一系列值。


(1)Excel實現


在Excel中,我們若想查看某一列數值中的唯一值,可以把這一列數值復制粘貼出來,然后刪除重復項,剩下的就是唯一值了。


(2)Python實現


在Python中,我們要獲取一列值的唯一值,整體思路與Excel的是一致的,先把某一列的值復制粘貼出來,然后用刪除重復項的方法實現,關于刪除重復項在前面講過了,本節用另一種獲取唯一值的方法unique()實現。


舉個例子,對表df中的銷售ID取唯一值,先把銷售ID取出來,然后利用unique()方法獲取唯一值,代碼如下所示。


Python數據分析入門教程(四):數值操作


七、數值查找


數值查找就是查看數據表中的數據是否包含某個值或者某些值。


(1)Excel實現


在Excel中我們要想查看數據表中是否包含某個值可以直接利用查找功能。首先要把待查找區域選中,可以選擇一列或者多列,如果不選,則默認在全表中查詢,然后單擊編輯菜單欄的查找和選擇按鈕,在下拉菜單中選擇查找選項,如下圖所示。


Python數據分析入門教程(四):數值操作


下圖為選擇查找選項后彈出的查找和替換對話框(也可以使用快捷鍵Ctrl+F打開查找和替換對話框),在查找內容框輸入要查找的內容即可,可以選擇查找全部,這樣就會把所有查找到的內容顯示出來;也可以選擇查找下一個,這樣會把查找結果一個一個顯示出來。


Python數據分析入門教程(四):數值操作


(2)Python實現


在Python中查看數據表中是否包含某個值用到的是isin()方法,而且可以同時查找多個值,只需要在isin方法后的括號中指明即可。


可以將某列數據取出來,然后在這一列上調用 isin()方法,看這一列中是否包含某個/些值,如果包含則返回True,否則返回False。


Python數據分析入門教程(四):數值操作


也可以針對全表查找是否包含某個值。


Python數據分析入門教程(四):數值操作


八、區間切分


區間切分就是將一系列數值分成若干份,比如現在有10個人,你要根據這10個人的年齡將他們分為三組,這個切分過程就稱為區間切分。


(1)Excel實現


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢