一、簡介
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
微信掃一掃
支付寶掃一掃