Я хочу создать специальный тип объекта на основе объекта pandas.DataFrame
, который всегда будет создаваться на основе определенного типа входного файла.
Мне удалось создать класс, который можетбыть создан так же, как обычный DataFrame, то есть:
class CustomDF(pd.DataFrame):
...
Obj = CustomDF({'a':[1,2],'b':[3,4]})
Но я хочу изменить поведение инициализации, чтобы принять имя файла CSV и импортировать его.Я знаю, что Pandas позволяет это, используя:
df = pd.read_csv(filename)
Но я не могу заставить его работать в моем новом классе, когда я делаю:
class CustomDF(pd.DataFrame):
def __init__(self, filename):
self = pd.read_csv(filename)
И хотя я не вижу ошибкисоздать объект с этим классом, я получаю ошибку 'CustomDF' object has no attribute '_data'
при попытке получить к нему доступ.
Я пытался изменить self = pd.read_csv(filename)
на self._data = pd.read_csv(filename)
или self.data = pd.read_csv(filename)
, но это не имеет никакого эффекта.
Как правильно это сделать?Есть ли лучший подход к тому же?