如果使用命令行安装Jqdata包有问题,也可以选择下载到本地:https://codeload.github.com/JoinQuant/jqdatasdk/zip/master
然后打开Anaconda Prompt 转到文件放置的位置,cd mulu
转到setup.py文件所在目录后 运行 python setup.py install 安装即可。
####基于利润率中位数的行业分析import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport datetimefrom jqdata import *#--设置参数----------------------------------------------------industry_name='sw_l2' #选择行业划分方法 ''' 行业划分方法, 取值如下: "sw_l1": 申万一级行业 "sw_l2": 申万二级行业 "sw_l3": 申万三级行业 "jq_l1": 聚宽一级行业 "jq_l2": 聚宽二级行业 "zjw": 证监会行业'''years=["2015","2016","2017","2018","2019"] #使用过去5年的财报数据进行分析#------------------------------------------------------------------------------------- aa=get_industries(name=industry_name) #按照行业分类获取行业列表。# print(aa)aa=aa[['name']] #aa用于存放行业名称a=list(aa.index) #a用于存放行业代码bb = pd.DataFrame() ####用于存放所有的财务数据!!!!!!for i in range (len(a)): #i用于行业的循环 stocks= get_industry_stocks(a[i]) #获取行业的股票 for j in years: #j用于年的循环 pd1= get_fundamentals(query( indicator.code, indicator.net_profit_margin ).filter(indicator.code.in_(stocks) #这里不能使用 in 操作, 要使用in_()函数 ),statDate=j) pd1["year"]=j #在数据中加入年的信息 pd1["industry"]=aa.loc[a[i],"name"] #在数据中加入行业名称信息 bb=bb.append(pd1) cc=bb.groupby('industry').median() ####算出行业利润率的median,并排序# df['net_profit_margin'].values.tolist()cc=cc.sort_values("net_profit_margin",ascending=False) #按行业Median排序,dd=cc.head(10) #用于存放优秀的行业ee=cc.tail(10) #用于存放落后的行业安装好后的JQdata在运行时会提示:run jqdatasdk.auth first
因为在使用JQdata库的时候需要验证
需要在开始的代码中加一句
auth('聚宽账号(手机号)','密码')对于账号和密码需要你自己 去官网注册申请
链接:https://www.joinquant.com/user/login/index?type=login