【发布时间】:2015-06-15 20:03:19
【问题描述】:
我有兴趣准备一个可以从另一个类继承属性的类对象。但是,初始化应该使用另一个类的现有方法来完成。可以试试:
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 上找到了相关讨论。但是,我仍然很好奇是否有一种方法可以通过使用另一个实例的现有方法来创建一个实例。
【问题讨论】:
-
def data(file): return pd.read_csv(file)...!? -
为什么需要编写这样的类,而不是调用
read_csv并使用结果? -
deceze,BrenBarn:这样做的目的不仅限于 pandas。我的意图是初始化一个实例,该实例具有现有实例的所有属性和方法。最重要的是,如果需要,我可以为其他目的添加其他属性和方法。
-
deceze:声明一个单独的函数如何帮助初始化满足上述要求的实例?
标签: python initialization