如何为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
相关产品推荐
相关产品推荐

