REGR: DataFrame.from_records for subclasses no longer calls subclass constructor · Issue #57008 · pandas-dev/pandas (original) (raw)
Navigation Menu
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Appearance settings
Description
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)