一、简介
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/n/231628.html