对于常见但是获取比较不太方便的数据我们将会写成一系列共享函数方便大家直接复制使用。
本系列将持续更新,标题为 【共享函数】
有些方法也可以直接在社区搜索到哦!
其中:
申万指数:
TotalMarketValue : 总市值(万元)
AShareTotalMV : A股流通市值(万元)
中证指数:
IndexPERatio1 : 指数市盈率(I)是按总股本计算的市盈率,
IndexPERatio2 : 指数市盈率(II)是按照中证指数调整后的股本计算的市盈率;
IndexDYRatio1 : 指数股息率(I)是按总股本计算的股息率,
IndexDYRatio2 : 指数股息率(II)是按照中证指数调整后的股本计算的股息率。以上股本调整规则详见中证指数官网对各个指数的编制规则:
from jqdata import jyfrom jqdata import *import pandas as pd#注意申万指数在2014年有一次大改,聚源使用的是为改变之前的代码,官网包含更改前和更改后的代码,如果遇到找不到的标的可以根据需求自行查找#如801124 >>801121食品加工IIdef get_sw_quote(code,end_date=None,count=None,start_date=None):'''获取申万指数行情,返回panel结构,总市值和流通市值的单位为(万元)'''if isinstance(code,str):code=[code]days = get_trade_days(start_date,end_date,count)code_df = jy.run_query(query( jy.SecuMain.InnerCode,jy.SecuMain.SecuCode,jy.SecuMain.ChiName).filter(jy.SecuMain.SecuCode.in_(code)))df = jy.run_query(query( jy.QT_SYWGIndexQuote).filter(jy.QT_SYWGIndexQuote.InnerCode.in_(code_df.InnerCode),jy.QT_SYWGIndexQuote.TradingDay.in_(days),))df2 = pd.merge(code_df, df, on='InnerCode').set_index(['TradingDay','SecuCode'])df2.drop(['InnerCode','ID','UpdateTime','JSID','RightLevel'],axis=1,inplace=True)return df2.to_panel()code = get_industries(name='sw_l2').index[:5]panel = get_sw_quote(code,end_date='2018-01-01',count=10)panel.to_frame(False).tail()
/opt/conda/lib/python3.5/site-packages/ipykernel_launcher.py:24: DeprecationWarning: Panel is deprecated and will be removed in a future version. The recommended way to represent these types of 3-dimensional data are with a MultiIndex on a DataFrame, via the Panel.to_frame() method Alternatively, you can use the xarray package http://xarray.pydata.org/en/stable/. Pandas provides a `.to_xarray()` method to help automate this conversion.
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
ChiName | PrevClosePrice | OpenPrice | HighPrice | LowPrice | ClosePrice | TurnoverVolume | TurnoverValue | TurnoverDeals | ChangePCT | IndexPE | IndexPB | TotalMarketValue | AShareTotalMV | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TradingDay | SecuCode | ||||||||||||||
2017-12-29 | 801011 | 申银万国指数-林业 | 1800.092 | 1795.480 | 1845.60 | 1784.41 | 1802.798 | 2853232.0 | 3.554701e+07 | None | 0.0015 | 777.37 | 3.13 | 2036129.0 | 1121708.0 |
801012 | 申银万国指数-农产品加工 | 2551.776 | 2546.600 | 2573.80 | 2515.61 | 2556.512 | 93670965.0 | 1.234257e+09 | None | 0.0019 | 35.58 | 3.12 | 14529320.0 | 7936090.0 | |
801013 | 申银万国指数-农业综合 | 2269.610 | 2260.530 | 2278.20 | 2254.30 | 2272.480 | 9084945.0 | 4.234125e+07 | None | 0.0013 | 125.71 | 2.92 | 867493.0 | 464852.0 | |
801014 | 申银万国指数-饲料 | 3644.520 | 3646.568 | 3709.26 | 3610.05 | 3685.350 | 133928157.0 | 1.452713e+09 | None | 0.0112 | 23.78 | 2.71 | 21027565.0 | 8124732.0 | |
801015 | 申银万国指数-渔业 | 1540.178 | 1535.748 | 1566.71 | 1528.66 | 1555.760 | 34618204.0 | 3.012524e+08 | None | 0.0101 | 43.95 | 2.52 | 5217722.0 | 2511131.0 |
def get_zz_quote(code,end_date=None,count=None,start_date=None):'''获取中证指数行情,返回panel结构'''if isinstance(code,str):code=[code]code.sort()code = [x[:6] for x in code]days = get_trade_days(start_date,end_date,count)code_df = jy.run_query(query( jy.SecuMain.InnerCode,jy.SecuMain.SecuCode,jy.SecuMain.ChiName).filter(jy.SecuMain.SecuCode.in_(code)).order_by(jy.SecuMain.SecuCode))df = jy.run_query(query( jy.QT_CSIIndexQuote).filter(jy.QT_CSIIndexQuote.IndexCode.in_(code_df.InnerCode),jy.QT_CSIIndexQuote.TradingDay.in_(days),))df2 = pd.merge(code_df, df, left_on='InnerCode',right_on='IndexCode').set_index(['TradingDay','SecuCode'])df2.drop(['InnerCode','IndexCode','ID','UpdateTime','JSID','OpenInterest','SettleValue','IndexCSIType'],axis=1,inplace=True)return df2.to_panel()panel = get_zz_quote(['000016.XSHG','000001.XSHG'],end_date='2019-01-21',count=10)panel.to_frame(False).tail()
/opt/conda/lib/python3.5/site-packages/ipykernel_launcher.py:19: DeprecationWarning: Panel is deprecated and will be removed in a future version. The recommended way to represent these types of 3-dimensional data are with a MultiIndex on a DataFrame, via the Panel.to_frame() method Alternatively, you can use the xarray package http://xarray.pydata.org/en/stable/. Pandas provides a `.to_xarray()` method to help automate this conversion.
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
ChiName | OpenPrice | HighPrice | LowPrice | ClosePrice | TurnoverVolume | TurnoverValue | ChangeOF | ChangePCT | TotalMV | IndexPERatio1 | IndexPERatio2 | IndexDYRatio1 | IndexDYRatio2 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TradingDay | SecuCode | ||||||||||||||
2019-01-17 | 000016 | 上海证券交易所50成份指数 | 2388.5925 | 2396.7993 | 2370.5809 | 2371.3481 | 2.155500e+09 | 2.696493e+10 | -9.87 | -0.41 | 4448625.30 | 10.07 | 10.26 | 3.43 | 3.08 |
2019-01-18 | 000001 | 上海证券交易所综合指数 | 2567.7386 | 2598.8836 | 2565.9043 | 2596.0056 | 1.907672e+10 | 1.512704e+11 | 36.37 | 1.42 | 28106437.15 | 12.89 | 12.89 | 2.60 | 2.60 |
000016 | 上海证券交易所50成份指数 | 2385.6219 | 2422.0290 | 2380.5624 | 2417.3630 | 3.008820e+09 | 3.749533e+10 | 46.01 | 1.94 | 4534948.67 | 10.25 | 10.46 | 3.36 | 3.02 | |
2019-01-21 | 000001 | 上海证券交易所综合指数 | 2599.0575 | 2618.9801 | 2599.0575 | 2610.5094 | 1.634251e+10 | 1.399155e+11 | 14.50 | 0.56 | 28263759.06 | 12.97 | 12.97 | 2.58 | 2.58 |
000016 | 上海证券交易所50成份指数 | 2418.0047 | 2443.2254 | 2418.0047 | 2432.4870 | 2.623724e+09 | 3.391253e+10 | 15.12 | 0.63 | 4563321.25 | 10.32 | 10.52 | 3.34 | 3.00 |
本社区仅针对特定人员开放
查看需注册登录并通过风险意识测评
5秒后跳转登录页面...
移动端课程