阿里巴巴股票分析

大纲

  • 阿里巴巴
1import pandas as pd 
2import matplotlib.pyplot as plt
1gupiao={'谷歌':'GOOG','亚马逊':'AMZN','Facebook':'FB',
2            '苹果':'AAPL','阿里巴巴':'BABA','腾讯':'0700.hk'}
1from pandas_datareader import data
1start_date = '2017-01-01'
2end_date = '2018-01-01'
3ali=data.get_data_yahoo(gupiao["阿里巴巴"],start_date,end_date)
1ali.head()

High Low Open Close Volume Adj Close
Date
2017-01-03 89.000000 88.080002 89.000000 88.599998 8789400 88.599998
2017-01-04 90.889999 88.580002 88.985001 90.510002 11490200 90.510002
2017-01-05 94.809998 91.639999 91.910004 94.370003 16821500 94.370003
2017-01-06 94.500000 93.000000 94.400002 93.889999 7639800 93.889999
2017-01-09 95.650002 93.309998 94.160004 94.720001 10792900 94.720001
1def  change(column):
2    prichange=(column[column.size-1]-column[0])/column[0]
3    if (prichange > 0):
4        print("股票累计上涨:",prichange*100,"%")
5    elif (prichange == 0):
6        print("股票基本不变:",prichange*100,"%")
7    else :
8        print("股票累计下跌:",prichange*100,"%")
9    return prichange
1alichange=change(ali["Low"])
股票累计上涨: 94.36874817125808 %
1yamaxun=data.get_data_yahoo(gupiao["亚马逊"],start_date,end_date)
2facebook=data.get_data_yahoo(gupiao["Facebook"],start_date,end_date)
3apple=data.get_data_yahoo(gupiao["苹果"],start_date,end_date)
4guge=data.get_data_yahoo(gupiao["谷歌"],start_date,end_date)
5tengxun=data.get_data_yahoo(gupiao["腾讯"],start_date,end_date)
1yamaxunchange=change(yamaxun["Low"])
股票累计上涨: 56.1455103569973 %
1facechange=change(facebook["Low"])
股票累计上涨: 52.76599727333859 %
1applechange=change(apple["Low"])
股票累计上涨: 47.45555774722253 %
1gugechange=change(guge["Low"])
股票累计上涨: 34.686780208213435 %
1tengxunchange=change(tengxun["Low"])
股票累计上涨: 116.80851388484874 %
1ali.info()
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 251 entries, 2017-01-03 to 2017-12-29
Data columns (total 6 columns):
High         251 non-null float64
Low          251 non-null float64
Open         251 non-null float64
Close        251 non-null float64
Volume       251 non-null int64
Adj Close    251 non-null float64
dtypes: float64(5), int64(1)
memory usage: 23.7 KB
1ali.dtypes
High         float64
Low          float64
Open         float64
Close        float64
Volume         int64
Adj Close    float64
dtype: object
1ali.describe()

High Low Open Close Volume Adj Close
count 251.000000 251.000000 251.000000 251.000000 2.510000e+02 251.000000
mean 143.203490 140.260857 141.909542 141.791793 1.550723e+07 141.791793
std 32.339500 31.505186 32.090767 31.875025 9.377487e+06 31.875025
min 89.000000 88.080002 88.985001 88.599998 4.120700e+06 88.599998
25% 109.124500 107.489998 108.430000 108.169998 9.129950e+06 108.169998
50% 144.380005 141.479996 143.000000 143.009995 1.341080e+07 143.009995
75% 175.139999 171.584999 173.595001 173.250000 1.864455e+07 173.250000
max 191.750000 189.369995 191.539993 191.190002 8.093690e+07 191.190002
1ali.plot(y="Close")
2plt.xlabel("时间")
3plt.ylabel("股价(美元)")
4plt.title("2017年阿里巴巴股价走势")
5plt.grid(True)
6plt.show()

png

1ali2=ali.reset_index(drop=False)
1ali2.plot(x="Volume",y="Close",kind="scatter")
2plt.grid(True)
3plt.show()

png

1ali.corr()

High Low Open Close Volume Adj Close
High 1.000000 0.998782 0.999281 0.999077 0.432467 0.999077
Low 0.998782 1.000000 0.998798 0.999249 0.401456 0.999249
Open 0.999281 0.998798 1.000000 0.998226 0.424686 0.998226
Close 0.999077 0.999249 0.998226 1.000000 0.415801 1.000000
Volume 0.432467 0.401456 0.424686 0.415801 1.000000 0.415801
Adj Close 0.999077 0.999249 0.998226 1.000000 0.415801 1.000000
1type(ali.index)
pandas.core.indexes.datetimes.DatetimeIndex
1a=ali.index
1type(a)
pandas.core.indexes.datetimes.DatetimeIndex
1tengxun["Close_dollar"]=tengxun["Close"]*0.1278
1tengxun.head()

High Low Open Close Volume Adj Close Close_dollar
Date
2017-01-03 191.100006 188.000000 188.000000 189.399994 9637272.0 188.557770 24.205319
2017-01-04 190.500000 188.100006 190.399994 189.000000 11411490.0 188.159561 24.154200
2017-01-05 194.199997 190.699997 191.000000 193.300003 20543005.0 192.440445 24.703740
2017-01-06 196.800003 194.699997 196.199997 195.100006 20077760.0 194.232437 24.933781
2017-01-09 196.899994 195.199997 196.699997 195.600006 13605277.0 194.730209 24.997681
 1ax1=ali.plot(y="Close",label="阿里巴巴")
 2yamaxun.plot(ax=ax1,y="Close",label="亚马逊")
 3apple.plot(ax=ax1,y="Close",label="苹果")
 4guge.plot(ax=ax1,y="Close",label="谷歌")
 5tengxun.plot(ax=ax1,y="Close_dollar",label="腾讯")
 6facebook.plot(ax=ax1,y="Close",label="Facebook")
 7plt.xlabel("时间")
 8plt.ylabel("股价(美元)")
 9plt.grid(True)
10plt.show()

png

1ax1=yamaxun.plot(y="Close",label="亚马逊")
2guge.plot(ax=ax1,y="Close",label="谷歌")
3plt.xlabel("时间")
4plt.ylabel("股价(美元)")
5plt.grid(True)
6plt.show()

png

1ax2=ali.plot(y="Close",label="阿里巴巴")
2apple.plot(ax=ax2,y="Close",label="苹果")
3tengxun.plot(ax=ax2,y="Close_dollar",label="腾讯")
4facebook.plot(ax=ax2,y="Close",label="Facebook")
5plt.xlabel("时间")
6plt.ylabel("股价(美元)")
7plt.grid(True)
8plt.show()

png

1gpmean=[ali["Close"].mean(),apple["Close"].mean(),guge["Close"].mean(),facebook["Close"].mean(),yamaxun["Close"].mean(),tengxun["Close_dollar"].mean()]
1gpmean
[141.7917926074024,
 150.55107548322334,
 921.7808373439834,
 156.57617537053932,
 968.1670116409363,
 37.2805998528634]
1gps=pd.Series(gpmean,index=["阿里巴巴","苹果","谷歌","Facebook","亚马逊","腾讯"])
1gps
阿里巴巴        141.791793
苹果          150.551075
谷歌          921.780837
Facebook    156.576175
亚马逊         968.167012
腾讯           37.280600
dtype: float64
1gps.plot(kind="bar",label="GAFATA")
2plt.xlabel("公司名称")
3plt.ylabel("股价(美元)")
4plt.grid(True)
5plt.show()

png

1closedf=pd.DataFrame()
2closedf=pd.concat([closedf,ali["Close"],apple["Close"],guge["Close"],facebook["Close"],yamaxun["Close"],tengxun["Close_dollar"]],axis=1)
1closedf.head()

阿里巴巴 苹果 谷歌 Facebook 亚马逊 腾讯
Date
2017-01-03 88.599998 116.150002 786.140015 116.860001 753.669983 24.205319
2017-01-04 90.510002 116.019997 786.900024 118.690002 757.179993 24.154200
2017-01-05 94.370003 116.610001 794.020020 120.669998 780.450012 24.703740
2017-01-06 93.889999 117.910004 806.150024 123.410004 795.989990 24.933781
2017-01-09 94.720001 118.989998 806.650024 124.900002 796.919983 24.997681
1closedf.columns=["阿里巴巴","苹果","谷歌","Facebook","亚马逊","腾讯"]#直接命名
1closedf.plot(kind="box")
2plt.xlabel("公司名称")
3plt.ylabel("股价(美元)")
4plt.grid(True)
5plt.show()

png