关于dataframe排序 pd.rank()
更新时间:2024年09月10日 09:57:25 作者:羊羊猪
pandas.DataFrame.rank方法支持不同的排序方式,如按行或列、升序或降序等,主要参数包括axis控制按行或列排名,method定义相同值的处理方式,numeric_only指定是否仅对数字列排序,na_option设置NaN值的排序方法,ascending确定排序方向,pct决定是否以百分比形式展示排名
pandas.DataFrame.rank
DataFrame.rank(axis=0, method=‘average', numeric_only=NoDefault.no_default, na_option=‘keep', ascending=True, pct=False)
参数解释
- axis: axis=0为按行排名,axis=1为按列排名
- method: 如何对具有相同价值(即领带)的记录组进行排序:
- numeric_only: 对于DataFrame对象,如果设置为True,则只对数字列排序。
- na_option: 如何对NaN值进行排序:
- ascending: 元素按升序/降序排列
- pct: 是否以百分比形式显示返回的排名。
Example:
df = pd.DataFrame(data={'Animal': ['cat', 'penguin', 'dog', 'spider', 'snake'], 'Number_legs': [4, 2, 4, 8, np.nan]})
method: {‘average', ‘min', ‘max', ‘first', ‘dense'}, default ‘average'
- average: 组里的平均排名
- min: 组里的最低排名
- max: 组里的最高排名
- first: 按照他们在数组中出现的顺序排列
- dense: 就像’ min '一样,但是在组之间rank总是增加1。
df['method_average'] = df['Number_legs'].rank(method='average') df['method_min'] = df['Number_legs'].rank(method='min') df['method_max'] = df['Number_legs'].rank(method='max') df['method_first'] = df['Number_legs'].rank(method='first') df['method_dense'] = df['Number_legs'].rank(method='dense')
na_option: {‘keep', ‘top', ‘bottom'}, default ‘keep'
- keep: 空值排序仍为空值
- top: 排序放在第一位
- bottom: 排在最后一位
df['na_keep'] = df['Number_legs'].rank(na_option='keep') df['na_top'] = df['Number_legs'].rank(na_option='top') df['na_bottom'] = df['Number_legs'].rank(na_option='bottom')
ascending: 升序为True, 降序为False
df['asc_True'] = df['Number_legs'].rank(method='min', ascending=True) df['asc_False'] = df['Number_legs'].rank(method='min', ascending=False)
pct: 是否显示百分比
df['pct_True'] = df['Number_legs'].rank(method='min', pct=True) df['pct_False'] = df['Number_legs'].rank(method='min', pct=False)
分组排序
pandas.core.groupby.GroupBy.rank 官方文档
Example:
df = pd.DataFrame( {"group": ["a", "a", "a", "a", "a", "b", "b", "b", "b", "b"], "value": [2, 4, 2, 3, 5, 1, 2, 4, 1, 5],} )
for method in ['average', 'min', 'max', 'dense', 'first']: df[f'{method}_rank'] = df.groupby('group')['value'].rank(method)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
使用Python对mongo数据库中字符串型正负数值比较大小
这篇文章主要介绍了使用Python对mongo数据库中字符串型正负数值比较大小,2023-04-04Anaconda配置pytorch-gpu虚拟环境的图文教程
这篇文章主要介绍了Anaconda配置pytorch-gpu虚拟环境步骤整理,本文分步骤通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-04-04使用PyInstaller将Python代码打包成独立可执行文件详细步骤
PyInstaller是一个Python库,可以将Python应用程序转换为独立的可执行文件,这篇文章主要给大家介绍了关于使用PyInstaller将Python代码打包成独立可执行文件的详细步骤,需要的朋友可以参考下2024-07-07
最新评论