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

计算分组内时间列的最大差值

计算分组内时间列的最大差值

在 Pandas 中,要计算每个分组内 time 列的最大值与当前行值的差值,需结合 groupby()transform() 方法。核心步骤如下:

  1. 分组计算最大值
    使用 transform('max') 获取每个分组中 time 列的最大值,结果会扩展为与原 DataFrame 长度相同的 Series:

    max_times = df.groupby('分组列')['time'].transform('max')
    
  2. 计算差值
    用扩展后的最大值序列直接减去原 time 列:

    df['max_diff'] = max_times - df['time']
    
完整代码示例
import pandas as pd# 示例数据
data = {'group': ['A', 'A', 'B', 'B', 'B'],'time': [10, 15, 5, 8, 3]
}
df = pd.DataFrame(data)# 计算每组 time 最大值与当前行的差值
df['max_diff'] = df.groupby('group')['time'].transform('max') - df['time']print(df)

输出结果

  group  time  max_diff
0     A    10         5  # A组最大值15-10=5
1     A    15         0  # A组最大值15-15=0
2     B     5         3  # B组最大值8-5=3
3     B     8         0  # B组最大值8-8=0
4     B     3         5  # B组最大值8-3=5
关键说明:
  1. transform('max'):为每个分组生成最大值,并广播到组内每一行
  2. 向量化运算:直接相减实现高效计算,无需循环
  3. 适用场景:时间序列分析、组内数据离散度计算等
http://www.dtcms.com/a/335017.html

相关文章:

  • 【AI论文】NextStep-1:迈向大规模连续令牌自回归图像生成
  • Warning: Unable to create personal MATLAB work folder:E:\绯荤粺榛樿\鏂囨。\MATLAB
  • 1083. 数列极差问题
  • 【深度学习】基于ESRNet模型的图像超分辨率训练
  • pytest介绍(python测试框架)(@pytest.mark.parametrize、@pytest.fixtures)
  • ClaudeCode使用指南
  • 鲁老师深度学习笔记(1)—最大似然估计
  • Flutter Provider 模式实现:基于 InheritedWidget 的状态管理实现
  • 93、23种设计模式之抽象工厂模式
  • 【读论文】医疗AI大模型:百川开源Baichuan-M2
  • 23. CommonJS 和 ES6 Module 区别
  • 19.3 Transformers量化模型极速加载指南:4倍推理加速+75%显存节省实战
  • ArrayList的contains问题
  • 【C++学习篇】:基础
  • Markdown 生成 Gantt 甘特图
  • STM32硬件SPI配置为全双工模式下不要单独使用HAL_SPI_Transmit API及HAL_SPI_TransmitReceive改造方法
  • 【图像算法 - 14】精准识别路面墙体裂缝:基于YOLO12与OpenCV的实例分割智能检测实战(附完整代码)
  • 人工智能之数学基础:条件独立
  • AI提升SEO关键词搜索效果
  • UDP/TCP套接字编程简单实战指南
  • 数据结构 栈与队列
  • Tomcat配置文件深度解析
  • [安洵杯 2019]Attack
  • STM32F407VET6开发板标准库实现DMA空闲接收和发送
  • 同创物流学习记录2·电车光电
  • 行为型设计模式:对象协作的舞蹈家(中)
  • Rust 入门 KV存储HashMap (十七)
  • 如何得知是Counter.razor通过HTTP回调处理的还是WASM处理的,怎么检测?
  • LeetCode 55.跳跃游戏:贪心策略下的可达性判断
  • 2025年睿抗国赛本科组题解