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

如何在Pandas DataFrame中为单列添加总计行

解决DataFrame仅指定列添加总计行的问题

你的问题出在直接调用File_Name.sum()时,pandas会对不同数据类型的列执行不同操作:字符串列会做拼接,金额列如果是字符串类型也会被当成字符串拼接,而非数值求和。要实现仅对金额列求和、其他列留空的效果,可以用以下几种方式:

方法1:分步构建总计行再合并

先创建一个空的Series,仅给金额列赋值求和结果,其他列设为空字符串,再合并到原DataFrame:

import pandas as pd

# 假设金额列是第3列,用索引定位(索引从0开始)
amount_col_idx = 2
amount_col_name = File_Name.columns[amount_col_idx]

# 创建总计行数据
total_row = pd.Series(index=File_Name.columns, dtype=object)
total_row[:] = ''  # 所有列先设为空字符串
total_row[amount_col_name] = File_Name.iloc[:, amount_col_idx].sum()

# 将总计行添加到DataFrame
File_Name = pd.concat([File_Name, total_row.to_frame().T], axis=0)

方法2:直接用loc赋值(更简洁)

先添加一行空值,再单独给金额列设置求和结果:

# 先添加总计行,所有列设为空
File_Name.loc['Total'] = ''
# 定位金额列并赋值求和结果
File_Name.loc['Total', File_Name.columns[2]] = File_Name.iloc[:,2].sum()

关键前置处理

如果金额列当前是字符串类型(比如带$符号),需要先转成数值类型才能正确求和:

# 去除$符号并转为数值,errors='coerce'处理无法转换的异常值
File_Name.iloc[:,2] = pd.to_numeric(File_Name.iloc[:,2].str.replace('$', ''), errors='coerce')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 21:01:04