Как я могу унаследовать класс 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