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

如何在Python中复现Excel的平均值计算及四舍五入逻辑

差异原因及解决方法

  1. 首先排查列选取范围的问题
    pandas的iloc切片遵循左闭右开规则,如果你Excel中选取的是第133到191列(包含首尾两列),Python中需要写成df.iloc[: , 133:192]才能覆盖相同的列范围,这是最容易导致统计结果偏差的原因。

  2. 核对有效数值统计逻辑
    Excel的AVERAGE函数和pandas的mean方法默认都会自动跳过NA值计算,逻辑本身一致,你可以通过手动计算总和、有效数个数确认是否对齐:

# 计算选中列的逐行总和(自动跳过NA)
row_sum = cols.sum(axis=1)
# 计算选中列的逐行非NA数值个数
row_count = cols.count(axis=1)
# 手动计算平均值
manual_mean = row_sum / row_count

把计算得到的总和、个数和Excel中用SUM、COUNT函数得到的结果做对比,就能确认是否是数值选取范围的问题。
如果是数据中存在字符串格式的'NA'而非pandas识别的np.nan,需要先替换成空值再计算:

cols = cols.replace('NA', np.nan).astype(float)
  1. 对齐四舍五入规则
    如果平均值计算已经一致,但四舍五入结果不同,是因为Python默认采用银行家舍入法(小数为0.5时取最近偶数),而Excel的ROUND函数采用的是逢五进一的规则,可以用自定义函数实现和Excel一致的舍入逻辑:
def excel_round(x, decimals=0):
    multiplier = 10 ** decimals
    return int(x * multiplier + 0.5) / multiplier

# 应用到目标列
df['rounded_score'] = df['score'].apply(excel_round)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:51:01