导入相关函数库
import pandas as pd
import numpy as np
from pandas import Series, DataFrame
import matplotlib.pyplot as plt
%matplotlib inline
from datetime import datetime
import seaborn as sns
sns.set()
从cvs读取文件
ba = open('BABA.csv')
am = open('AMZN.csv')
alibaba = pd.read_csv(ba, index_col=0)
amazon = pd.read_csv(am, index_col=0)
alibaba.head()
Open High Low Close Adj Close Volume
Date
2015-09-21 65.379997 66.400002 62.959999 63.900002 63.900002 22355100
2015-09-22 62.939999 63.270000 61.580002 61.900002 61.900002 14897900
2015-09-23 61.959999 62.299999 59.680000 60.000000 60.000000 22684600
2015-09-24 59.419998 60.340000 58.209999 59.919998 59.919998 20645700
2015-09-25 60.630001 60.840000 58.919998 59.240002 59.240002 17009100
画图
alibaba['Adj Close'].plot(legend=True)
alibaba['Volume'].plot(legend=True)
alibaba['Adj Close'].plot(legend=True)
amazon['Adj Close'].plot(legend=True)
pct_change
alibaba['daily-return'] = alibaba['Adj Close'].pct_change()
alibaba['daily-return'].plot(figsize=(10,4), linestyle='--', marker='o')
直方图和密度图
sns.distplot(alibaba['daily-return'].dropna(), bins=100, color='purple')
多只股票的关盘价分析
f = open('top5.csv')
top_tech_df = pd.read_csv(f, index_col=0)
top_tech_df = top_tech_df.sort_index()
top_tech_df.head()
AAPL AMZN FB GOOG MSFT
Date
2014-12-31 104.863991 310.350006 78.019997 523.521423 43.266247
2015-01-02 103.866470 308.519989 78.449997 521.937744 43.555000
2015-01-05 100.940392 302.190002 77.190002 511.057617 43.154472
2015-01-06 100.949890 295.290009 76.150002 499.212799 42.521076
2015-01-07 102.365440 298.420013 76.150002 498.357513 43.061325
关盘价盈亏比
top_tech_dr = top_tech_df.pct_change()
画图
top_tech_df.plot()
top_tech_df[['GOOG','MSFT','AAPL']].plot()
相关性分析
sns.jointplot('AAPL','AMZN',top_tech_dr, kind='scatter')
sns.pairplot(top_tech_dr.dropna())
风险分析
top_tech_dr['AAPL'].quantile(0.52)
0.001107631364068098
top_tech_dr['GOOG'].quantile(0.1)
-0.013821200284433788
top_tech_dr['AMZN'].quantile(0.1)
-0.014841820375433912