Example
In [16]: from pandas.tests.frame.test_subclass import MySubclassWithMetadata
In [17]: df = MySubclassWithMetadata.from_records([{'a': 1, 'b': 2}])
In [18]: type(df)
Out[18]: pandas.tests.frame.test_subclass.MySubclassWithMetadata
In [19]: df.my_metadata
...
AttributeError: 'MySubclassWithMetadata' object has no attribute 'my_metadata'
With pandas 2.1.4, this works fine.
The reason for this is because from_records was updated (#52419) to use
|
return cls._from_mgr(mgr, axes=mgr.axes) |
instead of cls(mgr) for the final dataframe construction.
I think this should probably at least use _constructor_from_mgr instead of _from_mgr (and maybe even still call the class? because in this case there is not finalize that can be called to finalize the initialization)
Example
With pandas 2.1.4, this works fine.
The reason for this is because
from_recordswas updated (#52419) to usepandas/pandas/core/frame.py
Line 2532 in 5740667
instead of
cls(mgr)for the final dataframe construction.I think this should probably at least use
_constructor_from_mgrinstead of_from_mgr(and maybe even still call the class? because in this case there is not finalize that can be called to finalize the initialization)