【机器学习】Pandas库练习-获取yahoo金融苹果公司的股票数据

    # 获取yahoo金融苹果公司的股票数据。
# 1、分析拉取的数据,找到收盘数据列的列名。
# 2、绘制收盘价格柱状图。
# 3、分析拉取的数据涨跌率,股价移动平均和波动率。
# 4、 找出开盘价和收盘价最高的那一天
# 5、 获取股票表格总共有多少行多少列
# 6、 对股票的每列按照月为单位求平均值
# 7、将股票表格按照adj close股价进行由高到低排序

# 练习提示:
# 1. 使用pandas_datareader读取苹果公司的2020年上半年的股票指数
# 2. 求股票的涨跌率return:当天的收盘指数/前一天的收盘指数的对数
# 3. 股价的移动平均值:#求移动平均值rolling(42).mean()
# 4. 股价的波动率:return(股票的涨跌率).rolling(42).std() 乘以窗口期的均方根
import datetime
import yfinance as yf #雅虎api
import pandas_datareader.data as web
import numpy as np
import pandas as pd
import cmath
import matplotlib.pyplot as plt

#1
yf.pdr_override()
start = datetime.datetime(2020, 1, 2)#开始日期
end = datetime.datetime(2020, 7, 1)#结束日期
apple = web.get_data_yahoo('AAPL', start, end)
print(apple.columns.values)
#
# #2
# apple['Close'].plot(kind='bar')
# plt.show()
#
# # 3
# # 涨跌率
# apple['Return'] = np.log(apple['Close']/apple['Close'].shift(1))
# apple['Return'].plot(kind='bar')
# plt.show()
# #股价移动平均
# apple['42d']=apple['Close'].rolling(42).mean()
# apple['42d'].plot(kind='bar')
# plt.show()
# #波动率
# apple['Mov_Vol']=apple['Close'].rolling(42).std()*cmath.sqrt(42)
# apple['Mov_Vol'].plot(kind='bar')
# plt.show()
# # 4
# apple=apple.sort_values(by='Open')
# print("OpenMax:",apple.index[-1])
# apple=apple.sort_values(by='Close')
# print("CloseMax:",apple.index[-1])
# apple=apple.sort_values(by='Close')
# # 5
# print("行数:",len(apple.index))
# print("列数:",len(list(apple)))
# # 6
# apple['index'] = apple.index
# print(apple.groupby([apple['index'].dt.year, apple['index'].dt.month]).mean()['Close'])
# 7
print(apple.sort_values(by="Adj Close",ascending=False))

 

posted @ 2020-07-14 23:28  海底淤泥  阅读(512)  评论(0编辑  收藏  举报