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

pandas计算列均值遇字符串"None"如何处理可避免数据偏差

pandas处理字符串类型缺失值计算均值的正确方案

核心解决方案

将字符串格式的"None"替换为pandas可识别的空值NaN而非0,pandas内置的统计方法会自动忽略NaN,仅基于有效数据计算均值,不会扭曲原始数据分布。

基础实现代码

import numpy as np

# 替换字符串"None"为空值后转浮点型
dur_temp = duration.replace("None", np.nan).astype(float)
# mean()会自动跳过空值计算
descricao_duration = dur_temp.mean()

原方案偏差原因

将缺失值替换为0相当于强行给未知时长的电影赋值为0分钟,远低于正常电影的时长范围,会直接拉低整体均值,同时可视化时会出现异常的0值尖峰,扭曲数据的真实分布。

如果需要用清洗后的数据绘图,直接过滤掉空值即可:

# 仅保留有效时长数据用于绘图
dur_valid = dur_temp.dropna()

进阶优化方案

如果不想直接丢弃缺失值,可以结合其他字段的信息做分组填充,进一步提升结果准确性:
比如按照电影类型、上映年份分组,用同分组内的平均时长填充缺失值,适合对数据精度要求更高的场景:

# 假设df为全量数据集,genres为电影类型列,release_year为上映年份列
df['duration'] = duration.replace("None", np.nan).astype(float)
# 按类型+年份分组填充空值
df['duration'] = df.groupby(['genres', 'release_year'])['duration'].transform(
    lambda x: x.fillna(x.mean())
)
descricao_duration = df['duration'].mean()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:18:01