使用Pandas的read_csv函数来读取这个文件,并将其转换为DataFrame¶

In [1]:
import pandas as pd
stocks = pd.read_csv('4170423-stocks.csv',header=0)
print(stocks.head())
       板块        日期  云上科技  财智科技   古盘云   微软云   谷歌云
0  NASDAQ  2006/1/3  7.68  7.88  7.33  7.57  7.57
1  NASDAQ  2006/1/4  7.53  7.67  7.53  7.62  7.62
2  NASDAQ  2006/1/5  7.66  7.68  7.37  7.52  7.52
3  NASDAQ  2006/1/6  7.60  7.64  7.40  7.61  7.61
4  NASDAQ  2006/1/9  7.65  7.87  7.53  7.79  7.79

统计股票价格数据¶

使用describe函数来统计股票价格数据的基本统计量。例如,我们可以计算股票价格的平均值、标准差、最小值、最大值等

In [2]:
print(stocks.describe())
             云上科技        财智科技         古盘云         微软云         谷歌云
count  985.000000  985.000000  985.000000  985.000000  985.000000
mean     4.158792    4.245838    4.056091    4.147178    4.147178
std      2.607119    2.629135    2.582350    2.605629    2.605629
min      0.150000    0.170000    0.120000    0.120000    0.120000
25%      1.300000    1.410000    1.220000    1.300000    1.300000
50%      4.270000    4.380000    4.140000    4.200000    4.200000
75%      6.730000    6.800000    6.620000    6.730000    6.730000
max      8.450000    8.560000    8.150000    8.280000    8.280000

绘制股票价格趋势图¶

In [3]:
import warnings
import matplotlib
warnings.filterwarnings("ignore")
import matplotlib.pyplot as plt
font = {'family': 'Microsoft YaHei', 'weight': 'bold', 'size': '12'}
matplotlib.rc("font", **font)
stocks.plot(x='日期', y='云上科技')
plt.show()
No description has been provided for this image

绘制多个股票价格的趋势图¶

In [4]:
stocks.plot(x='日期', y=['云上科技', '财智科技', '古盘云', '微软云', '谷歌云'])
plt.show()
No description has been provided for this image

绘制股票价格的移动平均线¶

计算苹果股票价格的20天移动平均线,并绘制它的趋势图

In [5]:
aapl = stocks['云上科技']
ma20 = aapl.rolling(window=20).mean()
plt.plot(aapl)
plt.plot(ma20)
plt.show()
No description has been provided for this image

计算股票价格的日收益¶

使用pct_change函数来计算股票价格的日收益率。例如,我们可以计算云上科技股票价格的日收益率,并绘制它的趋势图

In [6]:
aapl = stocks['云上科技']
returns = aapl.pct_change()
plt.plot(returns)
plt.show()
No description has been provided for this image

计算股票价格的移动年化波动率¶

使用rolling和std函数来计算股票价格的移动年化波动率。例如,计算云上科技股票价格的20天移动年化波动率,并绘制它的趋势图

In [7]:
import numpy as np
aapl = stocks['云上科技']
returns = aapl.pct_change()
volatility = returns.rolling(window=20).std() * np.sqrt(252)
plt.plot(volatility)
plt.show()
No description has been provided for this image