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

如何在Pandas DataFrame子集中按行仅求和指定列并新增列?

Pandas 精准指定列按行求和并新增列(类tidyverse管道操作)

直接用Pandas的assign()方法就能实现你要的效果,逻辑和tidyverse里的mutate()+管道完全一致,精准只对Score1和Score2按行求和,同时保留所有原列:

核心代码示例

import pandas as pd

# 构造匹配你数据结构的示例数据
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35],
    'Score1': [85, 90, 78],
    'Score2': [92, 88, 85]
})

# 链式操作:新增Total_Score列,仅对指定列求和
df = df.assign(Total_Score=lambda x: x[['Score1', 'Score2']].sum(axis=1))

关键说明

  • assign()对应tidyverse里的mutate(),用来新增/修改列,支持链式调用(类管道操作)
  • lambda x里的x指代当前链式步骤中的DataFrame,通过x[['Score1', 'Score2']]精准选中要计算的列,避免误加其他数值列(比如age)
  • sum(axis=1)表示按行求和,对应R里的rowSums()

类管道风格的扩展操作

如果要像R里的%>%一样串联多个操作(比如先筛选再计算),直接链式写就行,用反斜杠换行更清晰:

# 示例:先筛选age>28的行,再新增求和列
df_processed = df \
    .query("age > 28") \
    .assign(Total_Score=lambda x: x[['Score1', 'Score2']].sum(axis=1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:20:31