中国A股市场都有哪些股票分过红

数据来源于 baostock(www.baostock.com),baostock提供了完整的数据接口,暂时不支持事实数据,但对于A股市场的量化分析是够用了。baostock的具体API使用,感兴趣的同学可以自行参考,处于统计需要,本分基于baostock的数据,实现了一段统计并列表一段年份周期内A股市场有过分红派息的股票。

def get_dividend_list(start_year, end_year):
    # 获取截止前一天的所有股票代码
    stk_code = get_all_stock()

    #### baostock 登陆系统 ####
    lg = bs.login(user_id="anonymous", password="123456")
    
    # 显示登陆返回信息
    print('login respond error_code:'+lg.error_code)
    print('login respond  error_msg:'+lg.error_msg)

    dividend_list = []
    dividend_compony_list = []
    dividend_count_list = []
    dividend_compony_count = 0
    
    if start_year < 1990:
        print('开始年份不能小于1990年')
        return False
    if start_year > end_year:
        print('开始年份不能大于结束年份')
        return False

    for bk in stk_code:
        stock_type = check_code_is_stock(bk)
        if stock_type != 1:
            print(bk+'不是股票类型额代码!')
            continue

        dividend_count = 0
        for year in range(start_year, end_year+1):
                year_str = str(year)
                print(year_str)
                rs_dividend = bs.query_dividend_data(code=bk, year=year_str, yearType="report")
                while (rs_dividend.error_code == '0') & rs_dividend.next():
                    dividend_list.append(rs_dividend.get_row_data())
                    dividend_count += 1
                    
        if dividend_count > 0:
            dividend_compony_count += 1
            rs = bs.query_stock_basic(code=bk)
            while (rs.error_code == '0') & rs.next():
                # 获取一条记录,将记录合并在一起
                dividend_compony_list.append(rs.get_row_data())
                dividend_count_list.append(dividend_count)


    result_dividend = pd.DataFrame(dividend_list, columns=rs_dividend.fields)
    result_dividend_compony = pd.DataFrame(dividend_compony_list, columns=rs.fields)
    result_dividend_compony['dividend count'] = dividend_count_list
    # 打印输出
    print(result_dividend)
    print(result_dividend_compony)

    #### 结果集输出到csv文件 ####   
    result_dividend.to_csv("C:/history_Dividend_data.csv", encoding="gbk",index=False)
    result_dividend_compony.to_csv("C:/history_Dividend_compony.csv", encoding="gbk",index=False)

    #### 登出系统 ####
    bs.logout()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值