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

编写Python函数实现pandas DataFrame的mean或median缺失值填充

Pandas缺失值均值/中位数填充实现

首先导入依赖库:

import pandas as pd
import numpy as np

构造示例DataFrame:

data = {'Age':[18, np.nan, 17, 14, 15, np.nan, 17, 17]} 
df = pd.DataFrame(data)

实现方式1:直接调用原生API

完全匹配你给出的参考调用风格:

  • 使用均值填充:
# 计算均值并保留1位小数,符合你给出的期望输出格式
df = df.fillna(round(df['Age'].mean(), 1))
  • 使用中位数填充:
df = df.fillna(df['Age'].median())

实现方式2:封装为通用工具函数

如果需要适配多列数值填充、可灵活指定策略的场景,可以封装为通用函数:

def fill_numeric_na(df, strategy: str = 'mean'):
    """
    填充DataFrame中所有数值列的缺失值
    :param df: 待处理的DataFrame
    :param strategy: 填充策略,支持'mean'(均值)、'median'(中位数)
    :return: 缺失值填充完成的DataFrame
    """
    support_strategy = ['mean', 'median']
    if strategy not in support_strategy:
        raise ValueError(f"仅支持以下填充策略:{','.join(support_strategy)}")
    # 筛选数值列
    num_cols = df.select_dtypes(include=np.number).columns
    # 计算对应填充值
    if strategy == 'mean':
        fill_val = round(df[num_cols].mean(), 1)
    else:
        fill_val = df[num_cols].median()
    return df.fillna(fill_val)

调用示例:

# 均值填充
df = fill_numeric_na(df, strategy='mean')
# 中位数填充
df = fill_numeric_na(df, strategy='median')

内容的提问来源于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.02 22:36:03