首页 > 解决方案 > 在同一个类中使用另一个函数的输出

问题描述

我有一个类,其中唯一的输入是数据框。类中的第一个函数将列添加到数据框以创建新的数据框。我希望类中的后续函数使用新的数据框。

class House:
    def __init__(self, df):
        self.df = df

    def df_manip(self):
        # add additional columns to the dataframe
        return new_df

    def function1(self):
        answer = new_df.column3.sum()
        return answer 

df = pd.read_csv('data.csv')

house_1 = House(df)
print(house_1.function1())

标签: pythonobject

解决方案


要么在其中创建一个新属性,df_manip要么只是调用df_manip并使用它的返回值

class House:
    def __init__(self, df):
        self.df = df
        # call to make or change attribute
        self.df_manip()

    def df_manip(self):
        # add additional columns to the dataframe 

        # make or change an attribute 
        #self.otherdf = new_df
        #self.df = new_df

        return new_df

    def function1(self):
        answer = new_df.column3.sum()

        # Use  modified attribute
        #answer = self.df.column3.sum()

        # Use df_manip return value
        #newdf = self.df_manip()
        #answer = newdf.column3.sum()

        return answer 

推荐阅读