当前位置: 代码网 > it编程>前端脚本>Python > 关于dataframe排序 pd.rank()

关于dataframe排序 pd.rank()

2024年09月10日 Python 我要评论
pandas.dataframe.rankpandas.dataframe.rank 官方文档dataframe.rank(axis=0, method=‘average', numeric_only

pandas.dataframe.rank

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)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

  • python循环某一特定列的所有行数据(方法示例)

    python循环某一特定列的所有行数据(方法示例)

    在python中,处理表格数据(比如csv文件、excel文件等)时,我们通常会使用pandas库,因为它提供了丰富的数据结构和数据分析工具。下面,我将以处理c... [阅读全文]
  • pyinstaller打包路径的总结

    一、相对路径(自己总结得出,简单好用,力荐)py文件的相对路径:相对于py文件所在目录的相对路径。exe文件的相对路径:相对于exe文件所在目录的相对路径。准备打包的代码:impo…

    2024年09月10日 前端脚本
  • Python 如何调用手机摄像头

    python 调用手机摄像头在手机上安装软件这里以安卓手机作为演示,iso也是差不多的软件下载地址(需要的朋友及时下载,链接有效期3天。)注意:要想在电脑上查看手机摄像头拍摄的内容…

    2024年09月10日 前端脚本
  • PyTorch中的torch.cat函数基本用法详解

    PyTorch中的torch.cat函数基本用法详解

    在pytorch中,torch.cat是一个非常实用的函数,用于将多个张量(tensor)沿指定维度连接起来。这个功能在机器学习和深度学习中经常用到,尤其是在需... [阅读全文]
  • 打包迁移Python env环境的三种方法总结

    打包迁移Python env环境的三种方法总结

    平常工作中可能遇到python虚拟环境迁移的场景,总结了如下几个方法。适用于同架构、相同类型系统之间的python虚拟环境迁移。方法一:使用pip freeze... [阅读全文]
  • Python实现时间序列变化点检测功能

    平稳性是时间序列分析与预测的核心概念。在平稳条件下,时间序列的统计特性(如均值)在时间维度上保持不变,仅存在随机波动。但是实际数据集中很少观察到完全的平稳性。时间序列通常会经历结构…

    2024年09月09日 前端脚本

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com