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

如何为Dataframe新增两列求和计算列?求可遍历的实现函数

解决DataFrame新增列计算两列之和的问题

首先说明:pandas处理这类列运算,优先推荐向量化操作,不需要手动遍历,效率远高于遍历类方法。但如果确实需要使用遍历整个DataFrame的函数,也有对应的实现方式,以下分情况说明:

一、最高效的向量化实现(推荐)

直接对目标列执行加法运算,pandas会自动逐行计算:

# 假设你的DataFrame名为df,要相加的两列是"Math"和"Science",新增列名为"Total"
df["Total"] = df["Math"] + df["Science"]

二、使用遍历类函数的实现

如果需要用遍历类的方法,可选择以下几种:

1. 使用apply函数(逐行遍历)

apply可以传入自定义函数,对每一行执行计算:

df["Total"] = df.apply(lambda row: row["Math"] + row["Science"], axis=1)
  • axis=1表示按行执行操作

2. 使用iterrows()遍历

逐行迭代DataFrame的索引和行数据,适合小数据集:

# 先初始化新增列
df["Total"] = 0
for idx, row in df.iterrows():
    df.loc[idx, "Total"] = row["Math"] + row["Science"]
  • 注意:iterrows()效率较低,不推荐用于大型数据集

3. 使用itertuples()遍历

返回命名元组的迭代器,比iterrows()速度更快:

df["Total"] = [row.Math + row.Science for row in df.itertuples()]

效果说明

  • 原始DataFrame:包含多列数值型数据(例如Math、Science列,每行对应不同的数值)
  • 期望效果:新增一列(例如Total),每行的值为对应行Math和Science两列的数值之和

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 20:01:13