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

如何在Python中计算含NaN时返回NaN的pandas DataFrame均值?

解决方案

要实现「只要DataFrame里存在任何NaN值,计算均值时就返回NaN」的需求,直接用pandas自带的mean()方法即可,关键是设置两个参数:

  • axis=None:计算整个DataFrame的全局均值(默认是按列计算)
  • skipna=False:不忽略NaN值,只要数据里有NaN就返回NaN

修改后的示例代码:

import pandas as pd
import math

b = pd.DataFrame([[1,2],[math.nan,4]])
print(b)
# 计算全局均值,存在NaN则返回NaN
print(b.mean(axis=None, skipna=False))

运行后会直接返回NaN,和你的预期一致。

如果需要按列/行分别计算均值(每列/每行只要含NaN就返回NaN),只需调整axis参数:

  • 按列计算:b.mean(axis=0, skipna=False)
  • 按行计算:b.mean(axis=1, skipna=False)

这样就完全符合你的要求,不用依赖numpy的方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 21:32:42