申万一级行业变化

 1、比较

'''
申万指数在2014-02-21有一次大改,删除了6个一级行业,并增加了11个一级行业。故:
date < 2014-02-21   申万一级行业有23个
date = 2014-02-21   申万一级行业有34个
date > 2014-02-21   申万一级行业有28个
'''
#date='2014-02-20',23个
code1 = jd.get_industries(name='sw_l1', date='2013-01-20')

#date='2014-02-21'有34个
code2 = jd.get_industries(name='sw_l1', date='2014-02-21')

#date='2014-02-22'有28个
code3 = jd.get_industries(name='sw_l1', date='2015-02-22')

 2、聚宽数据问题

查询申万一级行业估值数据时,行业名称有问题

def get_sw1_valuation(start_date=None, end_date=None):
    #2014-02-22之后申万一级行业28个
    code = jd.get_industries(name='sw_l1',date='2014-02-22').index.tolist()
    days = jd.get_trade_days(start_date,end_date)
    index = jd.finance.run_query(jd.query(jd.finance.SW1_DAILY_VALUATION).filter(
            jd.finance.SW1_DAILY_VALUATION.date=='2014-02-22'
            ).limit(1)).columns.tolist()
    data =  pd.DataFrame(columns = index)
    for day in days:
        df=jd.finance.run_query(jd.query(jd.finance.SW1_DAILY_VALUATION).filter(
            jd.finance.SW1_DAILY_VALUATION.code.in_(code),
            jd.finance.SW1_DAILY_VALUATION.date==day
            ))
        name1 = set(list(map(lambda x:x[:-1],code3.name.tolist())))
        name2 = set(df.name.tolist())
        print(day)
        print(name1-name2)
        if not name1-name2:
            data = pd.concat([data, df], axis = 0, sort=False)
            break
    return data

df = get_sw1_valuation(start_date='2015-01-01',end_date='2020-05-01')  

这里可以说明在2015-01-22之前申万一级行业名称有问题。(下图是debug得到的图)

最后验证一下:(说明2015-01-22之后数据就没问题了)

name1 = set(list(map(lambda x:x[:-1],code3.name.tolist())))
name2 = set(df.name.tolist())

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值