按metric_name分组计算DataFrame中count列的差分
实现方法
可以用 pandas 的分组差分功能来实现,步骤如下:
- 先构造你的示例 DataFrame(如果已有数据可跳过这步):
import pandas as pd df = pd.DataFrame({ 'metric_name': ['m_1', 'm_2', 'm_1', 'm_2'], 'ts': [1, 1, 2, 2], 'count': [10, 20, 12, 19] })
- 按
metric_name分组计算count的差分,并将分组内第一行的空值替换为 0:
# 分组计算差分,组内第一行返回 NaN,用 fillna(0) 替换为 0 df['diff_count'] = df.groupby('metric_name')['count'].diff().fillna(0) # 可选:将浮点型结果转为整数,匹配示例格式 df['diff_count'] = df['diff_count'].astype(int)
- 最终输出结果:
metric_name ts count diff_count 0 m_1 1 10 0 1 m_2 1 20 0 2 m_1 2 12 2 3 m_2 2 19 -1
关键逻辑说明
groupby('metric_name'):确保每个指标单独计算差分,不会跨指标干扰diff():计算当前行与同组前一行的count差值,组内第一行因无前置数据返回NaNfillna(0):把第一行的空值替换为 0,符合你要求的起始行差分规则
内容的提问来源于stack exchange,提问作者Capacytron
相关产品推荐
相关产品推荐

