数据分析汇总学习
/weixin_39778570/article/details/81157884
导入相关函数库
import pandas as pdimport numpy as npfrom pandas import Series, DataFrameimport matplotlib.pyplot as plt%matplotlib inlinefrom datetime import datetimeimport seaborn as snssns.set()
从cvs读取文件
# 阿里巴巴的股票行情和亚马逊的股票行情ba = open('BABA.csv')am = open('AMZN.csv')# 以第0行作为索引alibaba = pd.read_csv(ba, index_col=0)amazon = pd.read_csv(am, index_col=0)# 显示前5行alibaba.head()Open High Low Close Adj Close VolumeDate -09-21 65.379997 66.400002 62.959999 63.900002 63.900002 22355100-09-22 62.939999 63.270000 61.580002 61.900002 61.900002 14897900-09-23 61.959999 62.299999 59.680000 60.000000 60.000000 22684600-09-24 59.419998 60.340000 58.209999 59.919998 59.919998 20645700-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 MSFTDate-12-31 104.863991 310.350006 78.019997 523.521423 43.266247-01-02 103.866470 308.519989 78.449997 521.937744 43.555000-01-05 100.940392 302.190002 77.190002 511.057617 43.154472-01-06 100.949890 295.290009 76.150002 499.212799 42.521076-01-07 102.365440 298.420013 76.150002 498.357513 43.061325
关盘价盈亏比
top_tech_dr = top_tech_df.pct_change()
画图
# 多只股票的收盘价格图top_tech_df.plot()
# 选取其中3只top_tech_df[['GOOG','MSFT','AAPL']].plot()
相关性分析
# sns绘图scatter表示散点图,传入x,y轴,数据源top_tech_drsns.jointplot('AAPL','AMZN',top_tech_dr, kind='scatter')# 可以看到在以(0,0)为分割的坐标中,1,3象限所在点比较多,而且相关性也比较强
# 画出全部列的散点图sns.pairplot(top_tech_dr.dropna())
风险分析
# 使用盈亏比数据分析# 0.48的几率盈利0.001107631364068098top_tech_dr['AAPL'].quantile(0.52)0.001107631364068098# 0.90的几率亏损0.013821200284433788top_tech_dr['GOOG'].quantile(0.1)-0.013821200284433788# 0.90的几率亏损0.014841820375433912top_tech_dr['AMZN'].quantile(0.1)-0.014841820375433912