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

Pandas mean()等函数如何强制输出所有列的完整计算结果

解决方案

Pandas内置数值统计函数默认仅对数值型列生效,要保留所有列输出,可采用以下两种常用实现方案:

方案1:强制转换列类型后计算(代码最简洁)

先对全表尝试转换为数值类型,无法转换的列值全部置为NaN,再执行统计计算,最终无法计算的列会自动返回NaN:

import pandas as pd

# 示例DataFrame
A = pd.DataFrame({"A": range(4), "B":["one", "two", "three", "four"], "C": range(4)})

# 转换+计算一行实现
res = A.apply(pd.to_numeric, errors='coerce').mean()
print(res)

输出结果如下,包含所有3列,B列返回NaN:

A    1.5
B    NaN
C    1.5
dtype: float64

方案2:自定义安全计算函数(适配任意统计函数)

如果需要兼容更多自定义统计逻辑,可以封装带异常捕获的计算函数,遍历每列执行,遇到不支持计算的列直接返回NaN:

import pandas as pd

A = pd.DataFrame({"A": range(4), "B":["one", "two", "three", "four"], "C": range(4)})

def safe_stat(func, col):
    try:
        return func(col)
    except:
        return pd.NA

# 计算均值
mean_res = A.apply(lambda x: safe_stat(pd.Series.mean, x))
# 可直接传入其他统计函数,比如求和、标准差,返回结果索引完全和原表列对齐
sum_res = A.apply(lambda x: safe_stat(pd.Series.sum, x))
std_res = A.apply(lambda x: safe_stat(pd.Series.std, x))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:54:07