Python 在对DataFrame的子类进行切片时传递元数据
我创建了一个从pandas.DataFrame继承的类。在此类中,元数据被添加(不是列,而是类实例): 如果对类进行切片,则会出现类型错误,因为Python 在对DataFrame的子类进行切片时传递元数据,python,pandas,Python,Pandas,我创建了一个从pandas.DataFrame继承的类。在此类中,元数据被添加(不是列,而是类实例): 如果对类进行切片,则会出现类型错误,因为\uuuu init\uuuu缺少必需的参数元数据。 我试图修改\u构造函数以传递元数据,但没有成功。 我还尝试将元数据作为附加属性添加到类中(\u metadata'=['metadata']),如下所述:,但没有效果 如何让类MeasurementPoint在切片时保留元数据?不确定回答您自己的问题是否被认为是一种好的形式,但以下方法似乎有效: cl
\uuuu init\uuuu
缺少必需的参数元数据
。
我试图修改\u构造函数
以传递元数据
,但没有成功。
我还尝试将元数据
作为附加属性添加到类中(\u metadata'=['metadata']
),如下所述:,但没有效果
如何让类MeasurementPoint在切片时保留元数据?不确定回答您自己的问题是否被认为是一种好的形式,但以下方法似乎有效:
class MeasurementPoint(pandas.DataFrame):
_metadata = ['metadata']
def __init__(self, *args, **kwargs):
metadata = kwargs.pop('metadata', {})
super(MeasurementPoint, self).__init__(*args, **kwargs)
self.metadata = metadata
@property
def _constructor(self):
return MeasurementPoint
正如pandas的内部文档所示,仔细查看geopandas软件包,它将为您指明正确的方向。
class MeasurementPoint(pandas.DataFrame):
_metadata = ['metadata']
def __init__(self, *args, **kwargs):
metadata = kwargs.pop('metadata', {})
super(MeasurementPoint, self).__init__(*args, **kwargs)
self.metadata = metadata
@property
def _constructor(self):
return MeasurementPoint