子类化pandas Series和DataFrame:当将子类化系列组合成子类化数据帧时,系列松散元数据

时间:2016-01-14 15:10:29

标签: python pandas subclassing

我有

class MySeries(pd.Series):
    _metadata = [_md]

    def __init__(self, *args, **kwargs):
        md = kwargs.pop('md', None)  #md is series
        super(TimeSeries, self).__init__(*args, **kwargs)
        if md is not None:
            try:
                self._md = self._md.append(md)     
            except AttributeError:
                self._md = md

    @property
    def _constructor(self):
        return MySeries

class MyFrame(pd.DataFrame):

    @property
    def _constructor(self):
        return MyFrame    

    @property
    def _constructor_sliced(self):
        return MySeries


md_a = pd.Series(...some content...)
md_b = pd.Series(...some other content...)
a = MySeries(...some a content..., md=md_a)
b = MySeries(...some b content..., md=md_b)
蒂姆现在一切都很好:     a._md 给出md_a的内容。那么b。

不,我用:

创建我的MyFrame
f = MyFrame([a,b]).T

f = SecuritiesFrame()
f = pd.concat((f, a, b), axis=1)

现在我尝试获取元数据:

f.iloc[:,1]._md

我得到一个AttributeError:' MyFrame'对象没有属性' _md'因为元数据不会传播。

这是正常行为还是我在监督某事?我是否必须在我的DataFrame子类中单独跟踪元数据,这将非常不方便。

0 个答案:

没有答案