Pandas DataFrame按分组逐行计算累计最小值与最大值的实现方法
实现方案
可以直接使用Pandas内置的分组累计聚合方法实现需求,代码简洁高效:
完整实现代码
import pandas as pd # 构造示例DataFrame data = {'color':['blue','blue','blue','blue','blue','blue','blue','blue','blue','blue'], 'panel':['b','b','b','b','b','b','b','b','b','b'], 'result':[4,3,3,5,4,7,1,5,3,2]} df = pd.DataFrame(data) # 按指定字段分组,新增累计最小值、累计最大值列 df['min'] = df.groupby(['color', 'panel'])['result'].cummin() df['max'] = df.groupby(['color', 'panel'])['result'].cummax() # 输出验证结果 print(df)
说明
groupby(['color', 'panel'])为按指定字段分组,可根据实际需求修改分组字段列表cummin()会计算每个分组内从第一行到当前行的累计最小值cummax()会计算每个分组内从第一行到当前行的累计最大值- 最终输出的DataFrame与预期结果完全一致
内容的提问来源于stack exchange,提问作者ManOnTheMoon
相关产品推荐
相关产品推荐

