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

如何使用Python的plydata包填补数值与分类列的缺失值?

使用plydata处理DataFrame缺失值的修正方案

需求说明

需将DataFrame中分类列beta的缺失值替换为"missing",数值列z的缺失值替换为该列的均值,使用Python的plydata包实现。

原代码问题分析

  1. 判断缺失值不能用x==np.nan,NaN不等于任何值(包括自身),需使用plydata的is.na()函数
  2. if_else参数格式错误,字符串引号嵌套混乱,未正确引用列名
  3. 未针对目标列beta和z进行处理

修正后的完整代码

import pandas as pd
import numpy as np
from plydata import mutate, if_else, is.na

# 创建原始DataFrame
df1 = pd.DataFrame({
    'alpha': list('a abbb'),
    'beta': list('bab uq'),
    'theta': list('cdec e'),
    'x': [1, 2, np.nan, 4, 5, 6],
    'y': [6, 5, 4, 3, 2, np.nan],
    'z': [7, np.nan, 11, 8, 10, 12]
})

# 处理缺失值
df_processed = df1 >> mutate(
    beta=if_else(is.na(beta), "missing", beta),
    z=if_else(is.na(z), z.mean(na.rm=True), z)
)

# 查看结果
print(df_processed)

代码说明

  • is.na(beta):检测beta列的缺失值,配合if_else将缺失值替换为"missing"
  • z.mean(na.rm=True):计算z列的均值时通过na.rm=True忽略缺失值,再用if_else替换z列的缺失值为该均值

内容的提问来源于stack exchange,提问作者Ransingh Satyajit Ray

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:57:14