一、簡介
Pandas是一個被廣泛使用的數據科學庫,但使用Pandas處理數據集時依然會遇到一些棘手的問題。在這種情況下,PandasRank 庫應運而生。PandasRank是一個基於Pandas的擴展包,它提供了各種用於數據科學的功能和一些核心的數據排序、過濾和處理等工具。
本文將從幾個方面介紹PandasRank的主要特點和在數據處理中的運用。
二、Ranking的應用
數據科學中ranking類的應用比較普遍,例如展示各個城市的人均GDP排名、根據競賽得分來顯示前十名選手等等。排名許多情況下是搭配着groupby一起使用,這樣會更容易操作。
import pandas as pd import pandasrank as pr # 創建數據集 data = pd.DataFrame({ 'group': ['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C'], 'score': [10, 15, 12, 3, 5, 13, 20, 21, 18] }) # 對Score進行排序,groupby其中一個屬性,成為一個增加rank列的新DataFrame pr.rank(data, 'score', 'group', True)
三、單列數據變換
有時候我們需要對一個列的數據進行計算或者變換,例如用倒數代替取反的正數,Pandasrank可以快速執行這些操作。
1、倒數
import pandas as pd import pandasrank as pr # 創建數據集 data = pd.DataFrame({ 'score': [10, -15, 12, -3, 5, 13, 20, -21, 18] }) # 進行倒數變換 pr.inverse(data, 'score')
2、差分
import pandas as pd import pandasrank as pr # 創建數據集 data = pd.DataFrame({ 'number': [10, 15, 12, 3, 5, 13, 20, 21, 18] }) # 生成new_number列,三行空值加上差分後數據 pr.diff_by_order(data, 'number', 'new_number', 3)
四、多列數據變換
在某些情況下,我們需要對多列數據進行變換,以應用更加綜合的計算方法。
1、加上一個排序號
import pandas as pd import pandasrank as pr # 創建數據集 data = pd.DataFrame({ 'group': ['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C'], 'score': [10, 15, 12, 3, 5, 13, 20, 21, 18] }) # 變換數據得到樣本的排名 data = pr.rank(data, 'score', 'group', True) # 新增一個sort_no列,包含某個group內對應的樣本排序 data = pr.sort_no(data, 'group', 'score', 'sort_no')
2、 多列的apply函數
import pandas as pd import pandasrank as pr # 創建數據集 data = pd.DataFrame({ 'temperature': [20, 5, 34, 13], 'humidity': [80, 40, 70, 10] }) # 利用自定義函數,對temperature和humidity列進行變換 pr.apply_cols(data, lambda x, y: x + y, ['temperature', 'humidity'])
五、篩選與過濾
1、去掉重複行
import pandas as pd import pandasrank as pr # 創建數據集 data = pd.DataFrame({ 'group': ['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C'], 'score': [10, 15, 12, 3, 5, 13, 20, 21, 18] }) # 通過去重來剔除所有重複的行 pr.distinct(data, ['group', 'score'])
2、隨機選擇行
import pandas as pd import pandasrank as pr # 創建數據集 data = pd.DataFrame({ 'group': ['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C'], 'score': [10, 15, 12, 3, 5, 13, 20, 21, 18] }) # 隨機選擇2行數據 pr.sample(data, 2)
六、結尾
PandasRank提供了豐富的工具,涵蓋了大部分數據科學處理中可能用到的方法。它的使用方式很簡單,能夠有效地降低數據處理的難度。在實際的數據科學項目中,當你需要對數據進行快速排序、計算和篩選時,不妨試一試使用PandasRank,或許可以事半功倍。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/231628.html