如何从pandas Series类继承以简化Series类型的子集?

问题描述 投票:0回答:1

我想创建一个新类,允许我创建受限制的pandas Series对象,这样用户只需要输入开始日期和初始化系列的周期数。我还希望能够替换该系列中给定日期的值。我在下面做了一个尝试,但我得到了

AttributeError:无法设置属性

当我尝试分配Series.values时,如下所示。如何通过继承这样的系列来创建我的类?

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
python pandas inheritance extending-classes
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
© www.soinside.com 2019 - 2024. All rights reserved.