Python笔记-沪深三百与茅台简单分析(2021年数据)
生活随笔
收集整理的这篇文章主要介绍了
Python笔记-沪深三百与茅台简单分析(2021年数据)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
下载数据
下载的数据分别是沪深三百2021年数据:
import baostock as bs import pandas as pdif __name__ == '__main__':#### 登陆系统 ####lg = bs.login()# 显示登陆返回信息print('login respond error_code:' + lg.error_code)print('login respond error_msg:' + lg.error_msg)#### 获取历史K线数据 ##### 详细指标参数,参见“历史行情指标参数”章节rs = bs.query_history_k_data_plus("000300.SH","date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,peTTM,pbMRQ,psTTM,pcfNcfTTM,isST",start_date='2021-01-01', end_date='2021-12-31') # frequency="d"取日k线,adjustflag="3"默认不复权print('query_history_k_data_plus respond error_code:' + rs.error_code)print('query_history_k_data_plus respond error_msg:' + rs.error_msg)#### 打印结果集 ####data_list = []while (rs.error_code == '0') & rs.next():# 获取一条记录,将记录合并在一起data_list.append(rs.get_row_data())result = pd.DataFrame(data_list, columns=rs.fields)#### 结果集输出到csv文件 ####result.to_csv("D:/stock/000300.SH.csv", encoding="gbk", index=False)print(result)#### 登出系统 ####bs.logout()pass茅台2021年数据:
import baostock as bs import pandas as pdif __name__ == '__main__':#### 登陆系统 ####lg = bs.login()# 显示登陆返回信息print('login respond error_code:' + lg.error_code)print('login respond error_msg:' + lg.error_msg)#### 获取历史K线数据 ##### 详细指标参数,参见“历史行情指标参数”章节rs = bs.query_history_k_data_plus("600519.SH","date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,peTTM,pbMRQ,psTTM,pcfNcfTTM,isST",start_date='2021-01-01', end_date='2021-12-31') # frequency="d"取日k线,adjustflag="3"默认不复权print('query_history_k_data_plus respond error_code:' + rs.error_code)print('query_history_k_data_plus respond error_msg:' + rs.error_msg)#### 打印结果集 ####data_list = []while (rs.error_code == '0') & rs.next():# 获取一条记录,将记录合并在一起data_list.append(rs.get_row_data())result = pd.DataFrame(data_list, columns=rs.fields)#### 结果集输出到csv文件 ####result.to_csv("D:/stock/600519.SH.csv", encoding="gbk", index=False)print(result)#### 登出系统 ####bs.logout()passPython分析数据
# -*- coding: utf-8 -*-import pandas as pdif __name__ == '__main__':hs300 = pd.read_csv("000300.SH.csv", index_col="date")maoTai = pd.read_csv("600519.SH.csv", index_col="date")stock_list = [maoTai, hs300]df = pd.concat([stock.pctChg for stock in stock_list], axis=1)df.columns = ['maoTai', 'hs300']df = df.sort_index(ascending=True)print(df.describe())# 填充数据df = df.fillna(0) # 这个可以去掉returns = (df + 1).product() - 1print('累计收益率\n', returns)import seaborn as snsimport matplotlib.pyplot as pltimport matplotlib as mplsns.set()mpl.rcParams['font.family'] = 'sans-serif'mpl.rcParams['font.sans-serif'] = 'SimHei'plt.figure(figsize=(10, 5))for col in df.columns:plt.plot(df[col], label=col)plt.title('日收益率时序图(2021)', fontsize=20)plt.legend()plt.show()pass后台打印如下:
D:\python\content\python.exe D:/PythonProject/demo/demo22.pymaoTai hs300 count 243.000000 243.000000 mean 0.000420 -0.000151 std 0.023567 0.011708 min -0.069911 -0.035325 25% -0.012650 -0.006741 50% 0.000323 0.000398 75% 0.014569 0.006918 max 0.095041 0.031595 累计收益率maoTai 0.035688 hs300 -0.051986 dtype: float64日收益时序图如下:
相关解释:
①df.descibe()打印如下信息:
maoTai hs300 count 243.000000 243.000000 mean 0.000420 -0.000151 std 0.023567 0.011708 min -0.069911 -0.035325 25% -0.012650 -0.006741 50% 0.000323 0.000398 75% 0.014569 0.006918 max 0.095041 0.031595代表的含义:
count:每一列数据有多少行;
mean:改列的平均值;
std:标准偏差(方差开根号);
min:最小值;
25%:有25%的样本比这个值高;
50%:有50%的样本比这个值高(这个值是中位数);
75%:有75%的样本比这个值高;
max:最大值;
②product()这个函数是计算这一列的乘积,代码里面是这样的:
returns = (df + 1).product() - 1 print('累计收益率\n', returns)这里,原始的df是这样的:
这些都是当天的收益率,+1,后把这些列都乘起来再-1,算出累计收益率。
总结
以上是生活随笔为你收集整理的Python笔记-沪深三百与茅台简单分析(2021年数据)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 电力笔记-30个行业专业词汇(Ⅰ期)
- 下一篇: anaconda base环境_Mac系