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

如何在Python中高效统计满足Sales与P类列均>0的月度ID数量?

高效实现按月份统计符合条件的ID数量

核心思路

先通过Sales>0过滤数据,再对所有P列生成同时满足P列>0的布尔掩码,最后按Month分组求和(布尔值求和等价于统计True的数量),全程用pandas向量化操作替代循环,大幅提升效率。

代码示例

import pandas as pd

# 假设原始数据框为 df
# 1. 先筛选出Sales大于0的行,缩小计算范围
sales_filtered = df[df['Sales'] > 0]

# 2. 获取所有以"P"开头的列,生成P列>0的布尔矩阵
p_columns = sales_filtered.filter(like='P').columns
p_boolean = sales_filtered[p_columns] > 0

# 3. 按Month分组,对布尔列求和得到每个月的符合条件ID数
result_df = sales_filtered[['Month']].join(p_boolean).groupby('Month').sum()

# 输出结果
print(result_df)

优势说明

  • 避免Python循环:所有操作基于pandas底层的向量化运算,比逐列循环快数倍(数据量越大差距越明显)
  • 逻辑简洁:一次性处理所有P列,无需单独遍历每个P列编写重复代码
  • 结果自动对齐:分组求和后直接得到以Month为索引、各P列为统计值的目标格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 13:40:35