首页 > 后端开发 > Python教程 > 如何获取分组 Pandas DataFrame 中最大计数的行?

如何获取分组 Pandas DataFrame 中最大计数的行?

DDD
发布: 2024-12-20 07:14:12
原创
768 人浏览过

How to Get Rows with the Maximum Count in Grouped Pandas DataFrames?

获取分组 Pandas DataFrame 中具有最大计数的行

问题:

从 pandas DataFrame 中检索具有最大计数的行“count”列的最大值,按“Sp”和“Mt”分组

示例:

示例 1:

输入 DataFrame:

Sp Mt Value count
MM1 S1 a 3
MM1 S1 n 2
MM1 S3 cb 5
MM2 S3 mk 8
MM2 S4 bg 10
MM2 S4 dgd 1
MM4 S2 rd 2
MM4 S2 cb 2
MM4 S2 uyi 7

预期输出:

Sp Mt Value count
MM1 S1 a 3
MM1 S3 cb 5
MM2 S3 mk 8
MM2 S4 bg 10
MM4 S2 uyi 7

示例 2:

输入 DataFrame:

Sp Mt Value count
MM2 S4 bg 10
MM2 S4 dgd 1
MM4 S2 rd 2
MM4 S2 cb 8
MM4 S2 uyi 8

预期输出:

Sp Mt Value count
MM2 S4 bg 10
MM4 S2 cb 8
MM4 S2 uyi 8

解决方案:

  1. 获取每组的最大计数:
import pandas as pd

df.groupby(['Sp', 'Mt'])['count'].max()
登录后复制

这将返回一个系列,其中包含“Sp”和“Sp”的每个唯一组合的最大计数“Mt”。

  1. 创建布尔掩码:
idx = df.groupby(['Sp', 'Mt'])['count'].transform(max) == df['count']
登录后复制

这将创建一个布尔掩码,其中 True 表示具有最大计数的行他们的小组。

  1. 过滤DataFrame:
df[idx]
登录后复制

这会过滤 DataFrame 以仅包含 idx 掩码为 True 的行,从而产生所需的输出。

注意: 如果多个行出现在同一组中,则将返回最大计数相等的多行。

以上是如何获取分组 Pandas DataFrame 中最大计数的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板