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个行业专业词汇(Ⅰ期)
- 下一篇: BootStrap笔记-Model(模式