You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas筛选低于自身事件平均处理量的记录

按Event分组筛选数值小于组平均值的记录

实现步骤

  • 为每条记录匹配其所属event_name的number_of_items_processed平均值
  • 基于平均值筛选符合条件的行,保留指定列

代码实现

假设你的数据存储在名为df的Pandas DataFrame中:

import pandas as pd

# 示例数据(替换为你的实际数据)
df = pd.DataFrame({
    "event_name": ["A", "A", "A", "B", "B", "B"],
    "date": ["2023-01-01", "2023-01-02", "2023-01-03", "2023-01-01", "2023-01-02", "2023-01-03"],
    "number_of_items_processed": [10, 20, 30, 5, 15, 25]
})

# 计算每个event_name的平均值,添加为新列
df["group_avg"] = df.groupby("event_name")["number_of_items_processed"].transform("mean")

# 筛选数值小于组平均值的记录,保留目标列
result = df[df["number_of_items_processed"] < df["group_avg"]][["event_name", "date", "number_of_items_processed"]]

# 查看结果
print(result)

示例输出

event_name        date  number_of_items_processed
0          A  2023-01-01                         10
3          B  2023-01-01                          5

关键说明

  • transform("mean"):和groupby配合使用时,会将分组计算的平均值映射回原DataFrame的每一行,避免手动合并数据的麻烦。
  • 最后通过列索引[["event_name", "date", "number_of_items_processed"]]直接提取需要的字段,无需额外处理。

内容的提问来源于stack exchange,提问作者Vithal Rd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 19:31:22