如何在 Pandas Python 中按 id 对行进行排名

2024-06-19

我有一个像这样的数据框:

id     points1    points2
1        44          53
1        76          34
1        63          66
2        23          34 
2        44          56

我想要这样的输出:

id     points1    points2     points1_rank     points2_rank
1        44          53            3                2
1        76          34            1                3
1        63          66            2                1
2        23          79            2                1
2        44          56            1                2

基本上,我想要groupby('id'),并找到具有相同 id 的每一列的排名。

我试过这个:

features = ["points1","points2"]
df = pd.merge(df, df.groupby('id')[features].rank().reset_index(), suffixes=["", "_rank"], how='left', on=['id'])

但我得到keyerror 'id'


你需要使用ascending=False inside rank

df.join(df.groupby('id')['points1', 'points2'].rank(ascending=False).astype(int).add_suffix('_rank'))


+---+----+---------+---------+--------------+--------------+
|   | id | points1 | points2 | points1_rank | points2_rank |
+---+----+---------+---------+--------------+--------------+
| 0 |  1 |      44 |      53 |            3 |            2 |
| 1 |  1 |      76 |      34 |            1 |            3 |
| 2 |  1 |      63 |      66 |            2 |            1 |
| 3 |  2 |      23 |      34 |            2 |            2 |
| 4 |  2 |      44 |      56 |            1 |            1 |
+---+----+---------+---------+--------------+--------------+
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Pandas Python 中按 id 对行进行排名 的相关文章

  • 十六进制转储文件的Pythonic方式

    我的问题很简单 有什么方法可以用 bash 命令以 Python 方式进行编码吗 hexdump e 2 1 02x file dat 显然 不使用 os popen 或任何快捷方式 编辑 虽然我没有明确指定 但如果代码在 Python3
  • 没有实例的 Django Formset

    In this http docs djangoproject com en dev topics forms modelforms inline formsetsDjango Doc 解释了如何创建一个表单集 该表单集允许您编辑属于特定作
  • 如何从sqlalchemy中的select语句创建新表?

    我正在使用 sqlalchemy 的核心功能来编写一些抽象层 该层本身需要能够从 select 语句创建表 示例代码 metadata MetaData bind engine table Table table name metadata
  • Django-获取外键对象列表

    假设我有以下模型 class ParentModel models Model name models CharField child models ForeignKey ChildModel class ChildModel models
  • dulwich - 从远程仓库身份验证克隆

    我找不到有关此主题的任何资源 我需要通过提供用户名和密码从私有存储库进行克隆 然而 当它们作为关键字参数提供给 dulwich get client from path 时 会出现错误 提示 未知参数 用户名 这似乎是一件简单的事情 但我找
  • 转换为 Base 64 时,TypeError: 'str' 不支持缓冲区接口 [重复]

    这个问题在这里已经有答案了 im Image open filePath load image self msg str bytearray list im getdata convert image data to string enco
  • 如何设置appache2的WSGI与python 3.7一起使用?

    我使用的是 ubuntu 16 04 并安装了 python 3 7 并使用以下说明将其设置为默认值 无法在 ubuntu 中将默认 python 版本设置为 python3 https stackoverflow com question
  • 什么是 data.frame 可以做而 data.table 不能做的事情?

    我刚刚开始使用 R 并遇到了 data table 我发现它很棒 一个非常天真的问题 我可以忽略 data frame 来使用 data table 以避免两个包之间的语法混淆吗 来自数据表常见问题解答 http datatable r f
  • 与正在运行的进程通信

    We have 基于Python的服务器 A 正在运行的命令行应用程序 在同一台 Linux 机器上 能够读取stdin 计算一些东西并将输出提供给stdout B 将输入从 A 发送到的最佳 最优雅 方式是什么 stdin B 的 并等待
  • 如何在不重复代码的情况下定义 randint 元组?

    我经常使用 randint 元组来表示颜色值等 a b c randint 0 255 randint 0 255 randint 0 255 当我认为必须有更好的方法时 有吗 使用numpy 1 import numpy as np tu
  • Python:如何即时生成代码?

    我遇到了一个问题 我必须动态生成程序然后执行它 我们怎样才能做到这一点 您可以使用 eval 函数从字符串执行代码 一个例子是 import math test r dir math eval test Output doc name pa
  • 使用 Python for Linux 模拟按键事件

    我正在编写一个脚本来自动运行特定模型 当模型失败时 它会等待用户输入 Enter 键 我可以检测到模型何时失败 但我无法使用 python 在 Linux 上 来模拟按键事件 Windows 有 SendKeys 库来执行此操作 但我想知道
  • Flask 从线程中删除会话变量

    我尝试实施投票系统 它的工作原理是这样的 如果用户对帖子进行投票 我会在会话变量中记录其临时状态 已投票 已加星标等 如果当前用户在我将结果保存到临时表之前尚未投票 用户可以在 5 分钟内更改投票 5 分钟后 结果将使用线程永久写入数据库
  • 导入错误:无法导入名称 DependencyWarning

    我正在使用 python 2 7 12 当我做import requests 我看到下面的错误 尝试卸载和安装 requests 也升级 pip 但没有运气 仍然是同样的问题 Python 2 7 12 default Nov 19 201
  • Scipy odeint 非负解

    显然 从 ODE 求解器获得非负解并非易事 https stackoverflow com questions 6977107 solving a delay differential equation dde system constra
  • numpy.genfromtxt 生成看起来像元组的数组,而不是二维数组 - 为什么?

    我在跑genfromtxt像下面这样 date conv lambda x str x replace time conv lambda x str x a np genfromtxt input txt delimiter skip he
  • Pylance 无法在 VSCode Jupyter 笔记本中工作

    皮兰斯工作于 py files 但不适用于 Jupyter ipynb笔记本 我尝试保存 ipynb 同样的问题 如何在我的笔记本中启用 Pylance 警告 Jupyter 扩展似乎不支持 Pylance 我提交这个问题就是为了解决这个缺
  • 单元测试期间的 Python 日志捕获

    我正在尝试捕获在 python 单元测试过程中创建的日志 并在此处看到了代码 https stackoverflow com a 1049375 576333 https stackoverflow com a 1049375 576333
  • Pandas 如何删除包含所需字符串的行

    我想删除包含所需字符串的所有行 假设我有以下数据框 A B C 1 a x w g n 3 l p j p v 我想删除包含字符串的所有行p 我已经搜索过它 但大多数答案都是基于列名称 就我而言 我不会知道它可以出现在任何列中 输出数据帧应
  • Django 类视图未返回 HttpResponse 对象。它返回 None 相反

    urls py from housepost views import ListingPost url r house post ListingPost as view name post house views py from djang

随机推荐

  • RSA SignatureException:签名长度不正确

    我在签署 rsa 签名时遇到问题 我有一个用私钥加密的签名 然而 当我尝试使用公钥验证它时遇到问题 我得到以下异常 java security SignatureException Signature length not correct
  • 初级 Java 计数器代码

    我的教授希望我这样做 使用下面的 Counter 接口写入多个可互换计数器 public interface Counter Current value of this counter int value Increment this co
  • Android 滚动视图无法以编程方式创建。

    我想在我的应用程序中使用滚动视图 我尝试将文本视图添加到滚动视图中 但除了滚动视图的背景颜色之外 我看不到任何渲染的内容 我是这样做的 public class MyView extends ViewGroup ScrollView myS
  • get_video_info YouTube 端点突然返回 404 未找到

    https www youtube com get video info video id videoId https www youtube com get video info video id 7BvideoId 7D正在投掷 响应状
  • CSS 中 calc() 的结果是什么

    我们现在已经开始使用calc 在CSS中 用于设置计算结果的宽度 例如 div div div div parent width 100px calcWidth width calc 100 3px height 100px backgro
  • 内容交付的正确 DTAP 设置

    我已经有了这个设置 但似乎不太正确 您将如何改进多个 NET 客户 开发团队的内容交付 CD 开发 CMS 服务器 gt 演示服务器环境 CMS 制作 gt 实时和预览网站 CMS 组合测试 验收 内部称为 分期 gt 上线 分期 CMS
  • Camera2设置预览(View)并获取预览回调

    我想从 Camera2 获取预览以及用于处理帧的 byte 回调 mImageReader ImageReader newInstance largest getWidth largest getHeight ImageFormat RAW
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • 使用管理员权限打开cmd(Windows 10)

    我有自己的 python 脚本来管理我的计算机上的 IP 地址 它主要在命令行 Windows 10 中执行netsh命令 您必须具有管理员权限 这是我自己的计算机 我是管理员 运行脚本时我已经使用管理员类型的用户 Adrian 登录 我无
  • Lotus Notes/Domino 开发版本控制的最佳实践

    请分享您如何对 Lotus Notes Domino 开发进行版本控制 我想将所有脚本 视图 自定义表单 脚本库等放入我们的 SVN 存储库中 半自动方法也被接受 即 如果我找到一种方法来获取一个文件中表单的所有事件脚本 并能够将其作为整个
  • 对齐卡片视图中的项目

    我希望我的卡片如下所示 我保持这样的布局
  • 如何在SparkR中进行map和reduce

    如何使用 SparkR 进行映射和归约操作 我能找到的只是有关 SQL 查询的内容 有没有办法使用 SQL 进行映射和减少 See 写入从 SparkR map 返回的 R 数据帧 https stackoverflow com quest
  • 如何以编程方式在 Android 中查找平板电脑或手机?

    我的情况是 手机和平板电脑的逻辑是相同的 但布局上略有不同 我尝试使用以下代码 public static boolean findoutDeviceType Context context return context getResour
  • 使用 jQuery / .data() 避免内存泄漏

    我正在使用 jQuery 动态创建 HTML 元素 现在需要针对它们存储 JavaScript 数据 但是 我现在担心内存泄漏 因为我实际上从未在对象上调用 删除 我 append 和 detach 它们 但从不 remove jQuery
  • jQuery,获取一个元素的宽度并应用于另一个元素

    有没有一种方法可以获取一个元素的宽度 container例如并将其应用到另一个 item例如 我的布局是响应式的 因此为什么我不能直接给出 item固定宽度值 像这样 item width container width Demo gt h
  • 对浮点数求和的最佳 OpenCL 2 内核是什么?

    C 17引入了许多新算法来支持并行执行 特别是标准 减少 http en cppreference com w cpp algorithm reduce是一个并行版本std 累积 http en cppreference com w cpp
  • 配置tomat的server.xml文件并自动生成mod_jk.conf

    我在用apache 2 2 15 and tomcat6 6 0 24 on CentOS 6 4并希望使用 tomcat 服务器的功能 通过添加以下内容自动生成 mod jk conf 文件
  • 使用AT命令发送消息时CMS Error 500错误

    我正在尝试在超级终端使用 AT 命令发送短信 我使用的是华为E1552 我收到此错误 CMS ERROR 500 我需要帮助找出导致此错误的原因 谢谢 这是一个旧线程 但为了将来的参考 我想这会很有用 CMS 错误 500基本上是指未知错误
  • 如何将 数组传递给存储过程

    我有一个清单索赔数据在 C 中 它有三个项目 日期 类型和描述 其中可以有多行 如下所示 索赔数据 Date Type Description 01 02 2012 Medical Its a medical 05 02 2013 Thef
  • 如何在 Pandas Python 中按 id 对行进行排名

    我有一个像这样的数据框 id points1 points2 1 44 53 1 76 34 1 63 66 2 23 34 2 44 56 我想要这样的输出 id points1 points2 points1 rank points2