Как я могу унаследовать класс Series от pandas, чтобы упростить его для подмножества типов Series?

Я хочу создать новый класс, который позволит мне создавать объекты серии Панд, которые ограничены, поэтому пользователю нужно только ввести дату начала и количество периодов для инициализации серии. Я также хочу иметь возможность заменить значения с указанием даты в этой серии. Я сделал попытку ниже, но я получаю

AttributeError: невозможно установить атрибут

Когда я пытаюсь назначить Series.values, как показано ниже. Как я могу создать свой класс, наследуя от Series, как это?

import pandas as pd
import numpy as np

class TimeSeries(Series):
def __init__(self, start_date='1/1/2019', periods=365):
    Series.__init__(self)
    self.range = pd.date_range(start_date, periods=periods, freq='D')
    self.values = pd.Series(np.zeros(len(self.range)), index=self.range)

def set_value(self, at_date, value):
    self.values[at_date] = value

1 ответ

Есть очень мало случаев, когда необходимо фактически создать подклассы объектов pandas. Это не один из них. Почему бы не использовать date_range функционировать и продвигать в серии?

pd.date_range('1/1/2019', periods=365, freq='D').to_series()

2019-01-01   2019-01-01
2019-01-02   2019-01-02
2019-01-03   2019-01-03
2019-01-04   2019-01-04
2019-01-05   2019-01-05

pd.Series(0, index=pd.date_range('1/1/2019', periods=365, freq='D'))

2019-01-01    0
2019-01-02    0
2019-01-03    0
2019-01-04    0
2019-01-05    0
Другие вопросы по тегам