使用python计算每日/每周/每月增长

时间:2017-11-11 10:11:09

标签: python algorithm datastore

我有一个非常复杂的问题,完全不知道如何解决:我正在尝试计算某些数据的每日/每周/蒙特利增长。

困难在于我正在随机收集数据点。所以我们可以得到这样的数据:

Date | orders

2017-01-12 |  1992
2017-01-13 |  2912
2017-02-10 |  3912
2017-02-11 |  4112
2017-02-12 |  4412
2017-02-16 |  5112
2017-03-01 |  8112

我有大量的数据,所以我认为如果不创建一个临时表来存储结果以避免漫长的等待时间,就不可能实际构建它。

所以我想创建一个增长表(使用google dataStore)并且...好吧我被困在那里。如何解决......

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

我只是对此进行了一次拍摄,因为你没有很多回复...或者我看到过的任何回复......

from pandas_datareader import data

s = data.get_data_yahoo('SBUX', start='2016-01-02',end='2017-12-04')['Adj Close']
monthly = s.resample('BM', how=lambda x: x[-1])
print(monthly)

以下是获取时间序列数据的另一种方法。

from pandas_datareader import data
import datetime as dt
import pandas as pd
ticker = 'MSFT'
begdate = '2016-11-11'
enddate = '2017-12-04'
data1 = data.DataReader(ticker,'yahoo',dt.datetime(2014,11,11),dt.datetime(2016,11,11))
print(data1)

以下是一些指导原则和总体经验法则。

当我们进行投资时,我们会将资金投入不同的资产,并在不同的时间段内获得回报。例如,对短期国库券的投资将持续3个月。我们可能会投资一只股票并在一周后退出几天。为了使这些不同投资的回报具有可比性,我们需要对回报进行年度化。因此,所有每日,每周,每月或每季度的回报都将转换为年化回报。年度化回报的过程如下:

基本思路是将回报复合到一个年度期间。因此,如果我们有月度回报,我们知道一年有12个月,同样有52周,4个季度和365天。我们根据全年的期数来计算我们的回报。

让我们举几个例子来理解这一点。

示例1:按季度返回

假设我们有5%的季度回报率。由于一年有四个季度,年度回报将是:

Annual returns = (1+0.05)^4 – 1 = 21.55%

示例2:每月退货

假设我们每月有2%的回报率。由于一年有12个月,年度回报将是:

Annual returns = (1+0.02)^12 – 1 = 26.8%

示例3:每周退货

假设我们每周回报率为0.5%。由于一年有52周,年度回报将是:

Annual returns = (1+0.005)^52 – 1 = 29.6%

示例4:每日退货

假设我们的每日回报率为0.1%。由于一年365天,年度回报将是:

Annual returns = (1+0.001)^365 – 1 = 44.02%

示例5:100天退货

我们实际上可以获得任何天数的回报并将其转换为年化回报。假设我们在100天内有6%的回报率。年度回报将是:

Annual returns = (1+0.06)^(365/100) – 1 = 23.69%
然而,年化回报有一个限制 - 他们假设我们能够以相同的利率再投资。然而,这可能并非总是可行。如果我们在一个季度内赚取5%,则无法保证我们能够在今年的下三个季度内复制这些回报。