Python 子类化系列和数据帧:当将子类化系列组合成子类化数据帧时,系列会丢失元数据
我有 蒂姆:现在一切都好了: a、 医学博士 给出md_a的内容。b也是 否我创建MyFrame时使用: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
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