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

Python Pandas实现按A列数值条件求和生成sum列

解决方案

可以通过Pandas的apply函数结合行级操作实现需求,核心逻辑是根据每行A列的数值,从B列开始选取对应数量的单元格并求和。

步骤1:导入Pandas并构造示例数据

先导入库,同时还原你提供的示例表格:

import pandas as pd

# 构造示例数据
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [1, 1, 1, 1, 1],
    'C': [pd.NA, 2, 2, 1.0, 1.0],
    'D': [pd.NA, pd.NA, 2, 1.0, 1.0],
    'E': [pd.NA, pd.NA, pd.NA, 1.0, 1.0],
    'F': [pd.NA, pd.NA, pd.NA, pd.NA, 1.0]
}
df = pd.DataFrame(data)

步骤2:定义求和函数并生成sum列

编写行处理函数,对每行执行以下操作:

  1. 获取A列指定的需要求和的单元格数量
  2. 从B列开始选取对应数量的列
  3. 对这些列的数值求和(自动忽略NaN)
def calculate_row_sum(row):
    # 获取需要选取的单元格数量
    count = row['A']
    # 确定从B列开始的目标列范围
    start_col_idx = df.columns.get_loc('B')
    target_cols = df.columns[start_col_idx : start_col_idx + count]
    # 对目标列的数值求和
    return row[target_cols].sum(skipna=True)

# 生成sum列
df['sum'] = df.apply(calculate_row_sum, axis=1)

最终结果

执行代码后,df的输出与你提供的示例完全一致:

A  B     C     D     E     F  sum
0  1  1   NaN   NaN   NaN   NaN    1
1  2  1     2   NaN   NaN   NaN    3
2  3  1     2     2   NaN   NaN    5
3  4  1   1.0   1.0   1.0   NaN    4
4  5  1   1.0   1.0   1.0   1.0    5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 08:15:03