1、打印DataFrame数据前5行和尾部倒数5行(浙大网新因重大事件停牌至1月6日开始复牌)
[mw_shl_code=python,true]print stock.head(5)
print stock.tail(5)
[/mw_shl_code]
FgTrHaH3gFLVBD-n1rP3S_qpvugT.png (14.97 KB, 下载次数: 5)
-4-19 22:22 上传
2、打印DataFrame数据索引和列名,索引为时间序列,列信息为开盘价、最高价、最低价、收盘价、复权收盘价、成交量
[mw_shl_code=python,true]print stock.index
print stock.columns[/mw_shl_code]
Fk0Wk7jOa1tI7XU_ktV08aKC0A1o.png (72.46 KB, 下载次数: 3)
-4-19 22:24 上传
3、打印DataFrame数据形状,index长度为248,columns数为6,即248个交易日,6项股票数据
[mw_shl_code=python,true]print stock.shape
[/mw_shl_code]
FhRQhPJXFKNsobCYAUXKi_T45kB4.png (1.02 KB, 下载次数: 8)
-4-19 22:25 上传
4、打印DataFrame数据查看数据是否有缺失,以及每列数据的类型
[mw_shl_code=python,true]print stock.info()
[/mw_shl_code]
FqHQfsPBdM-m6PV9PCDV0cW4QO1P.png (13.01 KB, 下载次数: 2)
-4-19 22:25 上传
5、打印DataFrame数据每组的统计情况,如最小值、最大值、均值、标准差等
[mw_shl_code=python,true]print stock.describe()[/mw_shl_code]
Fsc7D7FzU4HUNZhzPhmVrAzp2nHl.png (17.81 KB, 下载次数: 6)
-4-19 22:26 上传
6、DataFrame数据中增加涨/跌幅列,涨/跌=(当日Close-上一日Close)/上一日Close*100%
(1)添加一列change,存储当日股票价格与前一日收盘价格相比的涨跌数值,即当日Close价格与上一日Close的差值,1月3日这天无上一日数据,因此出现缺失
[mw_shl_code=python,true]change = stock.Close.diff()
stock['Change'] = change
print stock.head(5)[/mw_shl_code]
Fk6Y0PpoCdsEgWLkYneEp4j4FQHG.png (11.95 KB, 下载次数: 6)
-4-19 22:27 上传
(2)对缺失的数据用涨跌值的均值就地替代NaN。
[mw_shl_code=python,true]change.fillna(change.mean(),inplace=True)[/mw_shl_code]
Frqj3urqDzkSvAyLZxF8KvfJQGtr.png (12.01 KB, 下载次数: 11)
-4-19 22:27 上传
(3)计算涨跌幅度有两种方法,pct_change()算法的思想即是第二项开始向前做减法后再除以第一项,计算得到涨跌幅序列。
[mw_shl_code=python,true]stock['pct_change'] = (stock['Change'] /stock['Close'].shift(1))#
stock['pct_change1'] = stock.Close.pct_change()
[/mw_shl_code]
Fipoh9CWI3I_Fmn90OHkb3aFJBzc.png (23.88 KB, 下载次数: 11)
-4-19 22:28 上传
7、DataFrame数据中增加跳空缺口数值序列,这里定义的缺口为上涨趋势和下跌趋势中的突破缺口,上涨趋势中今天的最低价高于昨天收盘价为向上跳空,下跌趋势中昨天收盘价高于今天最高价为向下跳空。遍历每个交易日后将符合跳空缺口条件的交易日增加缺口数值。
[mw_shl_code=python,true]jump_pd = pd.DataFrame()
for kl_index in np.arange(1, stock.shape[0]):
today = stock.ix[kl_index]
yesday = stock.ix[kl_index-1]
today['preCloae'] = yesday.Close
if today['pct_change'] > 0 and (today.Low-today['preCloae']) > 0:
today['jump_power'] = (today.Low-today['preCloae'])
elif today['pct_change'] < 0 and (today.High-today['preCloae']) < 0:
today['jump_power'] = (today.High-today['preCloae'])
jump_pd = jump_pd.append(today)
stock['jump_power'] = jump_pd['jump_power']
print stock.loc["-04-26":"-06-15"]#默认打印全部列
[/mw_shl_code]
Fp8IHWEtHA3Oc4ljz66Iciud0hI3.png (125.34 KB, 下载次数: 1)
-4-19 22:31 上传
8、DataFrame数据保留两位小数显示
[mw_shl_code=python,true]format = lambda x: '%.2f' % x
stock = stock.applymap(format)
print stock.loc["-04-26":"-06-15"]#默认打印全部列[/mw_shl_code]
FnWYgqLiqYna59h2zZAdSiAjJU5A.png (25.33 KB, 下载次数: 6)
-4-19 22:32 上传
股价数据的可视化