当前位置: 首页 > news >正文

grouped.get_group((‘B‘, ‘A‘))选择分组

1. df.groupby(['team', df.name.str[0]])

  • df.groupby(['team', df.name.str[0]]) 这一部分代码表示对 DataFrame df 按照 两个条件 进行分组:

    • 按照 'team' 列(即团队)。
    • 按照 'name' 列的 首字母df.name.str[0])。
  • df.name.str[0] 使用了 str 访问器和 .str[0] 索引来获取 'name' 列中每个名字的首字母。例如,如果某个名字是 “Alice”,那么 df.name.str[0] 就会返回 'A'

  • 因此,分组后的结果是按团队(team)和每个人姓名的首字母进行二重分组。

2. grouped2.get_group(('B', 'A'))

  • grouped2.get_group(('B', 'A')) 表示从已经按 teamname 首字母分组的结果中,选出 teamB 且姓名首字母为 A 的组。
  • get_group(('B', 'A')) 方法返回的是符合条件的组的 DataFrame 数据。

示例:

假设你有如下的 DataFrame df

import pandas as pd# 创建一个示例 DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],'team': ['A', 'B', 'A', 'B', 'A'],'score': [90, 80, 85, 95, 88]
}
df = pd.DataFrame(data)print(df)

输出:

      name team  score
0    Alice    A     90
1      Bob    B     80
2  Charlie    A     85
3    David    B     95
4      Eva    A     88

执行 grouped2 = df.groupby(['team', df.name.str[0]])

grouped2 = df.groupby(['team', df.name.str[0]])

这将按照 team 和姓名首字母进行分组,得到一个分组对象。现在,grouped2 是一个包含多个组的 GroupBy 对象。

执行 grouped2.get_group(('B', 'A'))

grouped2.get_group(('B', 'A'))

这行代码会选出 teamB 且姓名首字母为 A 的分组。输出将是:

    name team  score
1    Bob    B     80

解释:

  • teamB 且姓名首字母为 A 的数据只有 Bob,因此返回的结果是一个 DataFrame,其中只包含 Bob 这一行数据。

完整代码

import pandas as pd# 创建一个示例 DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],'team': ['A', 'B', 'A', 'B', 'A'],'score': [90, 80, 85, 95, 88]
}
df = pd.DataFrame(data)print(df)grouped2 = df.groupby(['team', df.name.str[0].str.upper()])  # 确保首字母是大写
print(grouped2.groups)grouped2.get_group(('B', 'B'))

输出:
在这里插入图片描述

总结:

  • df.groupby(['team', df.name.str[0]]):按团队 (team) 和姓名的首字母 (df.name.str[0]) 进行二重分组。
  • get_group(('B', 'A')):获取 teamB 且姓名首字母为 A 的分组数据。在本例中,只有 Bob 这一行符合条件,因此返回该行数据。

这种方法非常有用,可以实现更复杂的分组,比如按某一列的部分值(如首字母、日期的月或周等)进行分组。

补充:

分组对象的groups方法会生成一个字典(其实是Pandas定义的PrettyDict),这个字典包含分组的名称和分组的内容索引列表,然后我们可以使用字典的.keys()方法取出分组名称:

import pandas as pd# 创建一个示例 DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],'team': ['A', 'B', 'A', 'B', 'A'],'score': [90, 80, 85, 95, 88]
}
df = pd.DataFrame(data)print(df,'\n')
grouped = df.drop('name', axis=1).groupby('team')
result = grouped.sum()
print(result,'\n')
print(df.groupby('team').groups,'\n')
print(df.groupby('team').groups.keys(),'\n')

输出:
在这里插入图片描述

http://www.lryc.cn/news/514596.html

相关文章:

  • HTML——66.单选框
  • Couchbase 和数据湖技术的区别、联系和相关性分析
  • springboot3 性能优化
  • C++之运算符重载详解篇
  • 深度学习应用工程化中的节能减排最佳实践
  • 电脑文件msvcp110.d丢失的解决方法
  • xdoj isbn号码
  • qt的utc时间转本地时间
  • mariadb变更数据存放目录
  • 分布式专题(11)之Zookeeper特性与节点数据类型详解
  • Java项目实战II基于小程序的驾校管理系统(开发文档+数据库+源码)
  • Unity Pico 应用失去焦点后,追踪功能被禁用(原生 UI 界面弹出)
  • 第十四届蓝桥杯Scratch省赛中级组—智能计价器
  • AWS S3文件存储工具类
  • 【leetcode100】二叉树的中序遍历
  • 开源GTKSystem.Windows.Forms框架:C# Winform跨平台运行深度解析
  • C++软件设计模式之责任链模式
  • 021-spring-springmvc-组件
  • 基于SpringBoot和OAuth2,实现通过Github授权登录应用
  • macos 支持外接高分辩率显示器开源控制软件
  • C++26 新特性预览(Preview)
  • MySQL5.7.26-Linux-安装(2024.12)
  • 2025-1-2-sklearn学习(30)模型选择与评估-验证曲线: 绘制分数以评估模型 真珠帘卷玉楼空,天淡银河垂地。
  • 【优选算法】查找总价格为目标值的两个商品
  • 利用 NineData 实现 PostgreSQL 到 Kafka 的高效数据同步
  • future和CompletableFuture
  • 如何通过深度学习提升大分辨率图像预测准确率?
  • 【机器学习】机器学习的基本分类-半监督学习-Ladder Networks
  • [react]小技巧, ts如何声明点击事件的类型
  • 智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之9 重新开始 之2