如何continiously计算基于数据的过去的X量的东西吗? (请详见信息)

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

目标:

计算50天移动平均每天的基础上,在过去的50天。我可以计算出平均为整个数据集,但我想contiously计算基于过去的50天平均?它改变路线的每一天!

import numpy as np
import pandas_datareader.data as pdr
import pandas as pd

# Define the instruments to download. We would like to see Apple, Microsoft and the S&P500 index.

ticker = ['AAPL']


#Define the data period that you would like

start_date = '2017-07-01'
end_date = '2019-02-08'

# User pandas_reader.data.DataReader to load the stock prices from Yahoo Finance. 

df = pdr.DataReader(ticker, 'yahoo', start_date, end_date)

# Yahoo Finance gives 'High', 'Low', 'Open', 'Close', 'Volume', 'Adj Close'.

#Export Close PRice, Volume, and Date from yahoo finance 

CloseP = df['Close']
CloseP.head()

Volm = df['Volume']
Volm.head()

Date = df["Date"] = df.index

#create a table with Date, Close Price, and Volume

Table = pd.DataFrame(np.array(Date), columns = ['Date'])
Table['Close Price'] = np.array(CloseP)
Table['Volume'] = np.array(Volm)




print (Table)

#create a column that contiosuly calculates 50 day MA
#This is what I can't get to work! 

MA = np.mean(df['Close'])
Table['Moving Average'] = np.array(MA)


print (Table)
python numpy mean datareader
1个回答
0
投票

首先,请不要使用CamelCase来命名变量,否则他们看起来类名。

接下来,使用merge()加入您的数据帧,而不是那些你的np.array方式:

>>> table = CloseP.merge(Volm, left_index=True, right_index=True)
>>> table.columns = ['close', 'volume']  # give names to columns
>>> table.head(10)
                 close      volume
Date
2017-07-03  143.500000  14277800.0
2017-07-05  144.089996  21569600.0
2017-07-06  142.729996  24128800.0
2017-07-07  144.179993  19201700.0
2017-07-10  145.059998  21090600.0
2017-07-11  145.529999  19781800.0
2017-07-12  145.740005  24884500.0
2017-07-13  147.770004  25199400.0
2017-07-14  149.039993  20132100.0
2017-07-17  149.559998  23793500.0

最后,使用rolling()mean()dropna()的组合来计算移动平均线:

>>> ma50 = table.rolling(window=50).mean().dropna()
>>> ma50.head(10)
                 close      volume
Date
2017-09-12  155.075401  26092540.0
2017-09-13  155.398401  26705132.0
2017-09-14  155.682201  26748954.0
2017-09-15  156.025201  27248670.0
2017-09-18  156.315001  27430024.0
2017-09-19  156.588401  27424424.0
2017-09-20  156.799201  28087816.0
2017-09-21  156.952201  28340360.0
2017-09-22  157.034601  28769280.0
2017-09-25  157.064801  29254384.0

请参阅文档中提到的API调用,以获取有关其使用的更多信息。祝好运!

© www.soinside.com 2019 - 2024. All rights reserved.