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

如何让Python类的MissingData方法复用readData的输出DataFrame?

同一类中方法间输出复用的实现方案

你的代码存在两个核心问题:一是MissingData方法不符合类方法的定义规则(缺少self参数),二是没有建立和readData方法的关联。下面提供两种可行的解决思路:

方案一:在MissingData中直接调用readData

直接在MissingData方法内部调用self.readData()获取DataFrame,适合数据量小、不需要多次复用数据的场景:

import pandas as pd 

class DATAA():
    def __init__(self, dataset, name, path=None):
        self.dataset = dataset
        self.name = name
        self.path = path

    def readData(self):
        outputdf = pd.read_csv(self.dataset, sep=',') 
        return outputdf

    def MissingData(self):
        # 调用类内的readData方法获取DataFrame
        outputdf = self.readData()
        # 修复原代码错误:isna是方法,需要加括号调用
        Missing_values = outputdf.isna().sum() 
        return Missing_values

# 使用示例
df = DATAA(dataset="your_data.csv", name="test_data")
missing_result = df.MissingData()
print(missing_result)

方案二:将DataFrame存为实例属性(推荐)

如果需要多次复用读取后的DataFrame,避免重复读取文件,建议在readData中将DataFrame赋值给实例属性self.df,后续所有方法直接使用这个属性:

import pandas as pd 

class DATAA():
    def __init__(self, dataset, name, path=None):
        self.dataset = dataset
        self.name = name
        self.path = path
        # 初始化实例属性,存储读取后的DataFrame
        self.df = None

    def readData(self):
        self.df = pd.read_csv(self.dataset, sep=',') 
        return self.df

    def MissingData(self):
        # 若未读取数据,自动调用readData加载
        if self.df is None:
            self.readData()
        Missing_values = self.df.isna().sum() 
        return Missing_values

# 使用示例
df = DATAA(dataset="your_data.csv", name="test_data")
# 可先预加载数据,后续方法直接复用
df.readData()
missing_result = df.MissingData()
# 也可直接调用MissingData,内部会自动判断是否需要加载数据
# missing_result = df.MissingData()
print(missing_result)

关键修改说明

  • 所有类的实例方法必须以self作为第一个参数,才能访问类的实例属性和其他方法
  • 方案二中将DataFrame存为实例属性,避免重复IO操作,提升运行效率
  • 修正了原代码isna.sum()的语法错误,isna是DataFrame的方法,需加括号调用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 14:57:23