Numpy 扩展数据帧的泛化方法

Numpy 扩展数据帧的泛化方法,numpy,pandas,dummy-data,Numpy,Pandas,Dummy Data,因此,我有一个年索引数据框,我想在年底(2013年)之后,通过一些逻辑增加它,比如说,在10年内将最后一个值增加n%,但逻辑也可以是只增加一个常量,或者稍微增加一个数字。我将把它留给一个函数,然后在那里填充逻辑 我想不出一种简洁的矢量化方法,可以在任意的时间和逻辑长度上实现这一点,留下一个更长的数据帧,并添加额外的增量,我宁愿不循环它。特定的计算很重要。通常,您必须计算循环中的值。但是,一些NumPy UFUNC(如np.add,np.multiply,np.minimum,np.maximum

因此,我有一个年索引数据框,我想在年底(2013年)之后,通过一些逻辑增加它,比如说,在10年内将最后一个值增加n%,但逻辑也可以是只增加一个常量,或者稍微增加一个数字。我将把它留给一个函数,然后在那里填充逻辑


我想不出一种简洁的矢量化方法,可以在任意的时间和逻辑长度上实现这一点,留下一个更长的数据帧,并添加额外的增量,我宁愿不循环它。

特定的计算很重要。通常,您必须计算循环中的值。但是,一些NumPy UFUNC(如
np.add
np.multiply
np.minimum
np.maximum
)具有一个可根据计算结果使用的值

例如,要计算给定恒定增长率的值,可以使用
np.multiply.accumulate
(或):

屈服

                  val
2013-12-22   0.000000
2013-12-23   1.000000
2013-12-24   2.000000
2013-12-25   3.000000
2013-12-26   4.000000
2013-12-27   5.000000
2013-12-28   6.000000
2013-12-29   7.000000
2013-12-30   8.000000
2013-12-31   9.000000
2014-01-01   9.900000
2014-01-02  10.890000
2014-01-03  11.979000
2014-01-04  13.176900
2014-01-05  14.494590
2014-01-06  15.944049
2014-01-07  17.538454
2014-01-08  19.292299
2014-01-09  21.221529
2014-01-10  23.343682
要以常量值递增,只需使用
np.arange

step=2
df['val'][-N:] = np.arange(last+step, last+(N+1)*step, step)
或:

一些线性递推关系可用下列公式表示:。比如说,,
以及

具体的计算问题。通常,您必须计算循环中的值。但是,一些NumPy UFUNC(如
np.add
np.multiply
np.minimum
np.maximum
)具有一个可根据计算结果使用的值

例如,要计算给定恒定增长率的值,可以使用
np.multiply.accumulate
(或):

屈服

                  val
2013-12-22   0.000000
2013-12-23   1.000000
2013-12-24   2.000000
2013-12-25   3.000000
2013-12-26   4.000000
2013-12-27   5.000000
2013-12-28   6.000000
2013-12-29   7.000000
2013-12-30   8.000000
2013-12-31   9.000000
2014-01-01   9.900000
2014-01-02  10.890000
2014-01-03  11.979000
2014-01-04  13.176900
2014-01-05  14.494590
2014-01-06  15.944049
2014-01-07  17.538454
2014-01-08  19.292299
2014-01-09  21.221529
2014-01-10  23.343682
要以常量值递增,只需使用
np.arange

step=2
df['val'][-N:] = np.arange(last+step, last+(N+1)*step, step)
或:

一些线性递推关系可用下列公式表示:。比如说,,
以及

具体的计算问题。通常,您必须计算循环中的值。但是,一些NumPy UFUNC(如
np.add
np.multiply
np.minimum
np.maximum
)具有一个可根据计算结果使用的值

例如,要计算给定恒定增长率的值,可以使用
np.multiply.accumulate
(或):

屈服

                  val
2013-12-22   0.000000
2013-12-23   1.000000
2013-12-24   2.000000
2013-12-25   3.000000
2013-12-26   4.000000
2013-12-27   5.000000
2013-12-28   6.000000
2013-12-29   7.000000
2013-12-30   8.000000
2013-12-31   9.000000
2014-01-01   9.900000
2014-01-02  10.890000
2014-01-03  11.979000
2014-01-04  13.176900
2014-01-05  14.494590
2014-01-06  15.944049
2014-01-07  17.538454
2014-01-08  19.292299
2014-01-09  21.221529
2014-01-10  23.343682
要以常量值递增,只需使用
np.arange

step=2
df['val'][-N:] = np.arange(last+step, last+(N+1)*step, step)
或:

一些线性递推关系可用下列公式表示:。比如说,,
以及

具体的计算问题。通常,您必须计算循环中的值。但是,一些NumPy UFUNC(如
np.add
np.multiply
np.minimum
np.maximum
)具有一个可根据计算结果使用的值

例如,要计算给定恒定增长率的值,可以使用
np.multiply.accumulate
(或):

屈服

                  val
2013-12-22   0.000000
2013-12-23   1.000000
2013-12-24   2.000000
2013-12-25   3.000000
2013-12-26   4.000000
2013-12-27   5.000000
2013-12-28   6.000000
2013-12-29   7.000000
2013-12-30   8.000000
2013-12-31   9.000000
2014-01-01   9.900000
2014-01-02  10.890000
2014-01-03  11.979000
2014-01-04  13.176900
2014-01-05  14.494590
2014-01-06  15.944049
2014-01-07  17.538454
2014-01-08  19.292299
2014-01-09  21.221529
2014-01-10  23.343682
要以常量值递增,只需使用
np.arange

step=2
df['val'][-N:] = np.arange(last+step, last+(N+1)*step, step)
或:

一些线性递推关系可用下列公式表示:。比如说,,
如果你想应用一个任意的Python函数,你必须循环它;i、 滚动增量之类的东西?你能写出你想应用的公式吗?如果你想应用任意的Python函数,你必须循环它。如果我牺牲了任意性,只想以一个常数(速率)增长;i、 滚动增量之类的东西?你能写出你想应用的公式吗?如果你想应用任意的Python函数,你必须循环它。如果我牺牲了任意性,只想以一个常数(速率)增长;i、 滚动增量之类的东西?你能写出你想应用的公式吗?如果你想应用任意的Python函数,你必须循环它。如果我牺牲了任意性,只想以一个常数(速率)增长;i、 e.滚动增量类的东西?你能写出你想要应用的公式吗?这是完全可行的,感谢指向
lfilter
的指针。这是完全可行的,感谢指向
lfilter
的指针。这是完全可行的,感谢指向
lfilter
的指针。这是完全可行的,感谢您提供指向
lfilter
的指针。