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

如何在sum列前新增DataFrame列并更新sum列计算结果?

解决方案

首先纠正代码里的误区:你写的df.loc['col3'] = [4, 5, 8]是给DataFrame新增行而非列,结合你的需求(新增列放在sum列之前,且sum列求和包含该列数值),提供两种实现方式:

方式一:先加新列再计算sum(更简洁)

这种方式下新列自然会在sum列之前,无需额外调整顺序:

import pandas as pd

# 创建初始DataFrame
df = pd.DataFrame({'col1': [3, 2, 5], 'col2': [9, 7, 4]})

# 先添加新列col3
df['col3'] = [4, 5, 8]

# 计算sum列,此时会自动包含col1、col2、col3的数值
df['sum'] = df.sum(numeric_only=True, axis=1)

方式二:已存在sum列时调整(适配你原有的操作顺序)

如果已经先添加了sum列,后续再新增col3并调整顺序、更新sum值:

import pandas as pd

# 创建初始DataFrame
df = pd.DataFrame({'col1': [3, 2, 5], 'col2': [9, 7, 4]})

# 先添加sum列
df['sum'] = df.sum(numeric_only=True, axis=1)

# 新增col3列
df['col3'] = [4, 5, 8]

# 重新计算sum,排除原sum列避免重复求和
df['sum'] = df.drop('sum', axis=1).sum(numeric_only=True, axis=1)

# 调整列顺序:将col3移到sum列之前
cols = df.columns.tolist()
sum_pos = cols.index('sum')
# 取出col3并插入到sum的前一位
cols.insert(sum_pos, cols.pop(cols.index('col3')))
df = df[cols]

最终得到的DataFrame列顺序为col1, col2, col3, sum,sum列的数值会包含col3的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:32:48