使用另一个类

时间:2015-06-15 20:03:20

标签: python initialization

我有兴趣准备一个可以从另一个类继承属性的类对象。但是,应该使用另一个类中的现有方法来完成初始化。可以试试:

import pandas as pd

class Data():
    def __init__(self, file):
        self.df = pd.read_csv(file)

if __name__ = "__main__":
    abc = Data("xyz.csv")

以这种方式,实例' abc.df'将是一个DataFrame实例,它使用pandas.read_csv()方法初始化,读取" xyz.csv"文件。我想知道如何实现初始化这样的 ' ABC'本身将是DataFrame实例,而不是' abc.df'?它应该像

import pandas as pd

class Data():
    def __init__(self, file):
        self = pd.read_csv(file) # self has all the attributes of a DataFrame instance

if __name__ = "__main__":
    abc = Data("xyz.csv")

当然,这不会奏效。

编辑:我找到了关于此How to subclass Pandas.DataFrame的相关讨论。但是,我仍然很好奇是否有办法通过使用另一个实例的现有方法来创建实例。

1 个答案:

答案 0 :(得分:0)

您可以从Data继承pandas.DataFrame,并在构造函数中使用from_csv来读取csv数据(未经验证):

import pandas as pd

class Data(pd.DataFrame):
    def __init__(self, file):
         super(Data, self).__init__()
         self.from_csv(file)

if __name__ = "__main__":
abc = Data("xyz.csv")