如何在DataFrame中按行计算符合指定Excel逻辑的KPI列
按行计算DataFrame中KPI列的最佳方法
核心逻辑
你的KPI规则是:计算Jan到Apr的行总和,若总和小于0则取0,否则保留总和。用pandas的向量化操作是最高效的方案,比逐行循环或apply快得多,尤其适合大数据量场景。
具体步骤
- 读取Excel文件到DataFrame
import pandas as pd # 替换为你的Excel文件路径 df = pd.read_excel('your_file.xlsx')
- 计算KPI列
直接用sum按行求和,再通过clip截断最小值为0,完美匹配Excel的逻辑:
# 选中Jan到Apr列,按行求和后,将小于0的数值替换为0 df['KPI'] = df[['Jan', 'Feb', 'Mar', 'Apr']].sum(axis=1).clip(lower=0)
验证结果
按上述代码计算后:
- 第一行Jan到Apr总和为
5-25-20+5=-35,clip后得到0,与示例一致 - 第二行总和为
15+24+11-20=30,保留原值30,符合预期
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

