2

我正在尝试使用一些添加的构造函数创建一个类似于 pandas Dataframe 的类:

class ExtendedDataFrame(DataFrame):
    def __init__(self):
        super(ExtendedDataFrame, self).__init__()   # without this I get a pandas error

    @classmethod    
    def contructor1(cls, filename):
        "Create DataFrame from file"
        df = pd.read_csv(filename) # returns a DataFrame
        df.__class__ = cls
        return df

    # more methods extending Dataframe ...

所以现在我可以做到:

ExtendedDataFrame.constructor1('table_xx.txt')    # returns an ExtendedDataFrame instance

我想要的是能够以这种方式获取我的 Table 类的实例:

ExtendedDataFrame('table_xx.txt')

推荐的方法是什么?

换句话说,我正在尝试创建一个ExtendedDataFrame类,但是一些 pandas 的方法如read_csvreturn a DataFrame,我想要ExtendedDataFrame返回一个。

4

1 回答 1

0

在您的方法中使用参数扩展__init__,调查提供的参数,如果找到一个字符串参数,则在Table.constructor1('string')内部执行。

另一方面,更仔细地查看您的问题,我想知道您想在这里实现什么。到目前为止,您的constructor1classmethod 没有意义。你想实现什么样的功能,这df = pd.read_csv(...)对你来说还不够?

于 2013-07-17T23:24:01.087 回答