0

我想创建一个新类,允许我创建受限制的 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
4

1 回答 1

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
于 2018-12-12T18:14:59.873 回答