我基于一周的收盘价和下周的开盘价来调查市场统计数据.要做到这一点我resample在熊猫中使用.为了给出一个例子,我在下面使用pandas DataReader.
from pandas.io.data import DataReader
Run Code Online (Sandbox Code Playgroud)
首先得到每日市场数据:
SP = DataReader("^GSPC", "yahoo")
del SP['Adj Close']
del SP['Volume']
SP.head()
Open High Low Close
Date
2010-01-04 1116.560059 1133.869995 1116.560059 1132.989990
2010-01-05 1132.660034 1136.630005 1129.660034 1136.520020
Run Code Online (Sandbox Code Playgroud)
现在resample到每周时间表:
ohlc_dict = {
'Open':'first',
'Close': 'last'}
w1_resamp = SP.resample('1w',how=ohlc_dict, closed='left', label='left')
Run Code Online (Sandbox Code Playgroud)
这给了我每周关闭和打开的数据.我现在根据声明突出显示上周和本周开盘之间的距离np.where.
w1_resamp['distance'] = np.where(w1_resamp['Open'] < w1_resamp['Close'].shift(),(w1_resamp["Close"].shift() - w1_resamp["Open"]),'np.nan');
Close Open distance
Date
2010-01-03 1144.979980 1116.560059
2010-01-10 1136.030029 1145.959961
2010-01-17 1091.760010 1136.030029
2010-01-24 1073.869995 1092.400024
2010-01-31 1066.189941 1073.890015
2010-02-07 1075.510010 1065.510010 …Run Code Online (Sandbox Code Playgroud)