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

Python编写缺失值统计类时代码运行报错的修复方法

数据集缺失值统计类代码修复

原代码存在的问题

  • 缩进不规范:Python强制要求缩进对齐,原代码Ml类定义、内部方法缩进层级混乱,会直接触发语法错误
  • 变量作用域错误:Information类的get_missing_values方法直接引用全局data变量,没有绑定实例传入的数据集,无法适配不同数据集的统计需求
  • 实例调用逻辑错误:
    • 用类名Ml作为实例变量名赋值,会覆盖原类的定义
    • 错误调用Ml.Information():Information是独立类,不是Ml实例的方法,且Ml初始化时已经创建了_info属性存储Information`的实例
    • Information类初始化没有接收数据集参数,无法和Ml类传入的数据集绑定

对应报错翻译

原报错核心信息:

AttributeError: 'Ml' object has no attribute 'Information'
中文翻译:属性错误:Ml类的实例对象不存在名为Information的属性或方法

修复后完整代码

import pandas as pd

# 构造测试数据集
data = {'product':['A','B','C','D'],'sales':[100,None,256,100]}
data = pd.DataFrame(data=data)

class Information():
    # 初始化时接收待统计的数据集,绑定到实例属性
    def __init__(self, data):
        self.data = data
        print('information object created')

    def get_missing_values(self):
        # 基于实例绑定的数据集统计缺失值
        missing_values = self.data.isnull().sum()
        return missing_values

class Ml:
    def __init__(self, data):
        print('DataPrep created') 
        self.data = data 
        # 初始化信息统计类实例,传入当前数据集
        self._info = Information(self.data)

    # 对外暴露缺失值统计调用入口
    def get_missing_stat(self):
        return self._info.get_missing_values()

# 实例化ML处理类,注意不要用类名作为实例变量名避免覆盖类定义
ml_obj = Ml(data)
# 调用缺失值统计方法
missing_result = ml_obj.get_missing_stat()
print("各字段缺失值数量统计:")
print(missing_result)

运行输出结果

DataPrep created
information object created
各字段缺失值数量统计:
product    0
sales      1
dtype: int64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 20:24:28