df.groupby()方法使用在查询中用到的筛选条件函数对 数据进行分组

这里举的例子是:

  • 按姓名首字母分组
python 复制代码
df.groupby(df.name.str[0])
  • 按A及B、其他团队分组
python 复制代码
df.groupby(df.team.isin(['A','B']))
  • 按姓名第一个字母和第二个字母分组
python 复制代码
df.groupby([df.name.str[0], df.name.str[1]])
  • 按日期和小时分组
python 复制代码
df.groupby([df.time.date, df.time.hour])

这些示例展示了如何使用 groupby 按不同的列值进行分组,每个分组的规则都是基于字符串的处理、布尔值判断或者日期时间的提取。下面我逐一解释每个示例:

1. 按姓名首字母分组

python 复制代码
df.groupby(df.name.str[0])
  • 作用 :这个 groupby 操作通过提取 name 列的每个值的首字母来进行分组。

  • df.name.str[0] 会提取 name 列中每个字符串的第一个字符(即首字母),并基于这些首字母来进行分组。

    假设 name 列的数据是:['Alice', 'Bob', 'Charlie', 'David', 'Eve'],那么 df.name.str[0] 将返回:['A', 'B', 'C', 'D', 'E']

  • 示例

    python 复制代码
    df = pd.DataFrame({
        'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
        'age': [25, 30, 35, 40, 45]
    })
    
    result = df.groupby(df.name.str[0]).sum()
    print(result)

    输出:

    复制代码
           age
    name      
    A       25
    B       30
    C       35
    D       40
    E       45

2. 按 A及B、其他团队分组

python 复制代码
df.groupby(df.team.isin(['A', 'B']))
  • 作用 :这个 groupby 操作通过 team 列判断每个值是否属于 'A''B' 团队来进行分组。

  • df.team.isin(['A', 'B']) 返回一个布尔系列,对于每个 team 列中的值,如果它是 'A''B',则返回 True,否则返回 False

    假设 team 列的数据是:['A', 'B', 'C', 'A', 'D'],那么 df.team.isin(['A', 'B']) 将返回:[True, True, False, True, False]

  • 示例

    python 复制代码
    df = pd.DataFrame({
        'team': ['A', 'B', 'C', 'A', 'D'],
        'score': [80, 90, 85, 95, 70]
    })
    
    result = df.groupby(df.team.isin(['A', 'B'])).sum()
    print(result)

    输出:

    复制代码
           score
    team        
    False    155
    True     265
    • True 表示 AB 团队的分组,False 表示其他团队的分组。

3. 按姓名第一个字母和第二个字母分组

python 复制代码
df.groupby([df.name.str[0], df.name.str[1]])
  • 作用 :这个 groupby 操作通过提取 name 列中每个值的前两个字母来进行分组。

  • df.name.str[0] 提取第一个字母,df.name.str[1] 提取第二个字母。两个字母作为分组的依据。

    假设 name 列的数据是:['Alice', 'Alex', 'Bob', 'Charlie', 'Eve'],那么 df.name.str[0] 返回 ['A', 'A', 'B', 'C', 'E']df.name.str[1] 返回 ['l', 'l', 'o', 'h', 'v']

  • 示例

    python 复制代码
    df = pd.DataFrame({
        'name': ['Alice', 'Alex', 'Bob', 'Charlie', 'Eve'],
        'age': [25, 30, 35, 40, 45]
    })
    
    result = df.groupby([df.name.str[0], df.name.str[1]]).sum()
    print(result)

    输出:

    复制代码
               age
    name name      
    A    l       55
    B    o       35
    C    h       40
    E    v       45
    • 这里每个分组的标识由姓名的前两个字母组成。

4. 按日期和小时分组

python 复制代码
df.groupby([df.time.date, df.time.hour])
  • 作用 :这个 groupby 操作首先提取 time 列中的日期部分(去掉时间),然后提取小时部分(24小时制)。

  • df.time.date 提取日期部分,df.time.hour 提取小时部分。这样你可以按照日期和小时来对数据进行分组。

    假设 time 列的数据是:['2025-01-01 10:20:00', '2025-01-01 11:30:00', '2025-01-02 10:45:00'],那么 df.time.date 会返回:['2025-01-01', '2025-01-01', '2025-01-02']df.time.hour 会返回:[10, 11, 10]

  • 示例

python 复制代码
import pandas as pd

# 创建DataFrame
df = pd.DataFrame({
    'time': pd.to_datetime(['2025-01-01 10:20:00', '2025-01-01 11:30:00', '2025-01-02 10:45:00']),
    'value': [100, 200, 300]
})
print(df,'\n\n')

# 按日期和小时分组,并对value列进行求和
result = df.groupby([df.time.dt.date, df.time.dt.hour])['value'].sum()

print(result)

输出:

  • 这里的数据是按照日期和小时分组的,结果是每个日期和小时组合下的 value 总和。

总结

  • 按姓名首字母分组:通过字符串的第一个字母来分组。
  • 按 A及B、其他团队分组 :通过判断某个列的值是否属于特定集合(例如 'A''B')来分组。
  • 按姓名的前两个字母分组:通过字符串的前两个字母来分组。
  • 按日期和小时分组 :通过日期和小时来分组,适用于处理 datetime 类型数据。

这些方法展示了 groupby 操作的灵活性,可以根据不同的条件对数据进行分组和聚合处理。

相关推荐
ziwu8 分钟前
【民族服饰识别系统】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积网络+resnet50算法
人工智能·后端·图像识别
ziwu22 分钟前
【卫星图像识别系统】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积网络+resnet50算法
人工智能·tensorflow·图像识别
ISACA中国28 分钟前
ISACA与中国内审协会共同推动的人工智能审计专家认证(AAIA)核心内容介绍
人工智能·审计·aaia·人工智能专家认证·人工智能审计专家认证·中国内审协会
ISACA中国43 分钟前
《第四届数字信任大会》精彩观点:针对AI的攻击技术(MITRE ATLAS)与我国对AI的政策导向解读
人工智能·ai·政策解读·国家ai·风险评估工具·ai攻击·人工智能管理
Coding茶水间44 分钟前
基于深度学习的PCB缺陷检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·深度学习·yolo·目标检测·计算机视觉
绫语宁1 小时前
以防你不知道LLM小技巧!为什么 LLM 不适合多任务推理?
人工智能·后端
霍格沃兹测试开发学社-小明1 小时前
AI来袭:自动化测试在智能实战中的华丽转身
运维·人工智能·python·测试工具·开源
大千AI助手1 小时前
Softmax函数:深度学习中的多类分类基石与进化之路
人工智能·深度学习·机器学习·分类·softmax·激活函数·大千ai助手
韩曙亮1 小时前
【人工智能】AI 人工智能 技术 学习路径分析 ② ( 深度学习 -> 机器视觉 )
人工智能·深度学习·学习·ai·机器视觉
九千七5261 小时前
sklearn学习(3)数据降维
人工智能·python·学习·机器学习·sklearn