Подклассы pandas классы кажутся общей потребностью, но я не мог найти ссылки на эту тему. (Похоже, что разработчики pandas все еще работают над этим: https://github.com/pydata/pandas/issues/60).
Есть некоторые SO-потоки по этому вопросу, но я надеюсь, что кто-то здесь может предоставить более систематическую учетную запись в настоящее время лучшим способом подкласса pandas.DataFrame, который удовлетворяет двум, я думаю, общим требованиям:
import numpy as np
import pandas as pd
class MyDF(pd.DataFrame):
# how to subclass pandas DataFrame?
pass
mydf = MyDF(np.random.randn(3,4), columns=['A','B','C','D'])
print type(mydf) # <class '__main__.MyDF'>
# Requirement 1: Instances of MyDF, when calling standard methods of DataFrame,
# should produce instances of MyDF.
mydf_sub = mydf[['A','C']]
print type(mydf_sub) # <class 'pandas.core.frame.DataFrame'>
# Requirement 2: Attributes attached to instances of MyDF, when calling standard
# methods of DataFrame, should still attach to the output.
mydf.myattr = 1
mydf_cp1 = MyDF(mydf)
mydf_cp2 = mydf.copy()
print hasattr(mydf_cp1, 'myattr') # False
print hasattr(mydf_cp2, 'myattr') # False
И существуют ли существенные различия для подкласса pandas.Series? Спасибо.