如何让数据科学中的预处理类返回pandas DataFrame?
如何让预处理类返回Pandas DataFrame?
你当前的代码中,df = preprocessing('Data 11.08.2022')得到的是preprocessing类的实例对象,而非处理后的DataFrame。以下几种方法可以帮你获取到目标DataFrame:
方法1:直接访问实例的df属性
这是最简单的方式,直接通过实例变量获取处理后的DataFrame:
df = preprocessing('Data 11.08.2022').df
方法2:给类添加返回数据的方法
给类新增一个方法,专门用来返回处理好的DataFrame,代码结构更清晰:
# 遵循PEP8规范,类名使用大驼峰命名 class Preprocessing: def __init__(self, data_name): self.df = pd.read_pickle(f'{data_name}.pkl') self.df = self.df[2:].reset_index(drop=True) self.df = self.df.fillna(method='ffill') self.df = self.df.fillna(method='bfill') # 添加获取处理后数据的方法 def get_processed_df(self): return self.df # 使用示例 processor = Preprocessing('Data 11.08.2022') df = processor.get_processed_df()
方法3:利用__call__特殊方法
通过实现__call__方法,让类的实例可以像函数一样被调用,直接返回DataFrame:
class Preprocessing: def __init__(self, data_name): self.df = pd.read_pickle(f'{data_name}.pkl') self.df = self.df[2:].reset_index(drop=True) self.df = self.df.fillna(method='ffill') self.df = self.df.fillna(method='bfill') def __call__(self): return self.df # 使用示例 df = Preprocessing('Data 11.08.2022')()
内容的提问来源于stack exchange,提问作者Dino
相关产品推荐
相关产品推荐

