Как я могу подклассифицировать DataFrame Pandas?Python

Программы на Python
Anonymous
Как я могу подклассифицировать DataFrame Pandas?

Сообщение Anonymous »

Подклассы классов Pandas кажутся распространенной необходимостью, но мне не удалось найти ссылки на эту тему. (Похоже, что разработчики Pandas все еще работают над этим: Упрощенное создание подклассов #60.)
Есть несколько вопросов по этой теме, но я надеюсь, что кто-то здесь может предоставить более систематизированный отчет о лучшем на данный момент способе создания подкласса pandas.DataFrame, который удовлетворяет двум общим требованиям:
  • вызов стандартных методов DataFrame в экземплярах MyDF должны создаваться экземпляры MyDF
  • вызов стандартных методов DataFrame в экземплярах MyDF должен оставить все атрибуты прикрепленными к выходным данным
(Есть ли существенные различия в создании подклассов pandas.Series?)
Код для создания подкласса pd.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)) #

# 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)) #

# 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


Подробнее здесь: https://stackoverflow.com/questions/221 ... -dataframe

Вернуться в «Python»