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

存在空值时如何正确计算年初至今(YTD)的累计和?

问题原因

Pandas 中使用+运算符对多列执行求和运算时,只要参与计算的任意一个值为空值NaN,整行的计算结果就会返回NaN,这是导致含空值行计算结果异常的核心原因。

优化方案

使用DataFrame.sum()方法按行求和即可解决该问题,该方法默认会自动忽略空值NaN,代码如下:

# 计算2019年1-6月YTD累计值
df['YTD19'] = df[['January 19', 'February 19', 'March 19', 'April 19', 'May 19', 'June 19']].sum(axis=1)
# 计算2020年1-6月YTD累计值
df['YTD20'] = df[['January 20', 'February 20', 'March 20', 'April 20', 'May 20', 'June 20']].sum(axis=1)

如果需要区分「全空值行」和「有数值且求和结果为0」的场景,可以添加min_count=1参数:整行所有值都为空时返回NaN,至少有1个非空值时才返回求和结果,代码如下:

df['YTD19'] = df[['January 19', 'February 19', 'March 19', 'April 19', 'May 19', 'June 19']].sum(axis=1, min_count=1)
df['YTD20'] = df[['January 20', 'February 20', 'March 20', 'April 20', 'May 20', 'June 20']].sum(axis=1, min_count=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:48:01