Python 子类化系列和数据帧:当将子类化系列组合成子类化数据帧时,系列会丢失元数据

Python 子类化系列和数据帧:当将子类化系列组合成子类化数据帧时,系列会丢失元数据,python,pandas,subclassing,Python,Pandas,Subclassing,我有 蒂姆:现在一切都好了: a、 医学博士 给出md_a的内容。b也是 否我创建MyFrame时使用: class MySeries(pd.Series): _metadata = [_md] def __init__(self, *args, **kwargs): md = kwargs.pop('md', None) #md is series super(TimeSeries, self).__init__(*args, **kwarg

我有

蒂姆:现在一切都好了: a、 医学博士 给出md_a的内容。b也是

否我创建MyFrame时使用:

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)

现在我尝试获取元数据:

f = SecuritiesFrame()
f = pd.concat((f, a, b), axis=1)
我得到一个AttributeError:“MyFrame”对象没有属性“\u md”,因为元数据没有传播


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

元数据没有被复制不幸的是,您必须自己跟踪这一点。除了geopandas之外,我还可以在此基础上构建任何有价值的示例?可能会有帮助…请看一下
\uuu finalize\uu
方法。它复制某些情况下的元数据,但不是所有情况下的元数据。我现在正在研究类似的东西,并研究fow来覆盖它以处理我想要的。元数据没有被复制不幸的是,你必须自己跟踪这一点。除了geopandas,还有什么值得我借鉴的例子吗?可能会有帮助…请看一下
\uuu finalize\uu
方法。它复制某些情况下的元数据,但不是所有情况下的元数据。我现在正在做一些类似的事情,并调查fow以覆盖它来处理我想要的东西。
f = SecuritiesFrame()
f = pd.concat((f, a, b), axis=1)
f.iloc[:,1]._md