import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdate
path=r"stock2015-2016.csv"
//读取股票csv数据
all_data=pd.read_csv(path)
//截取其中有用的几列
just_close_price=all_data[["Ticker","Date","Adj Close"]]
//数据透视表(会将第一个参数变为索引)
daily_close_px=just_close_price.pivot("Date","Ticker","Adj Close")
将索引日期字符串转化为日期对象(2016-12-30形式),才能显示日期横坐标
def convert_date(val):
y,m,d=val.split("-")
return pd.datetime(int(y),int(m),int(d))
daily_close_px.index=daily_close_px.index.map(convert_date)
//绘制某一列
daily_close_px["IBM"].plot()
//绘制所有列
daily_close_px.plot()
//求每日涨跌率,不能直接DataFrame相除,因为截取的部分会保留索引
daily_pencent1=daily_close_px[1:]/daily_close_px.shift(1)
将缺失数据填充为0
daily_pencent2.fillna(0) #填充为0
计算累积收益
cum_daily_return=(1+daily_pencent2).cumprod()
查看最后盈利情况
cum_daily_return.iloc[-1]