当前位置: 首页 > news >正文

A股复权计算_权息数据整理代码

目录

前置:

获取数据代码 

数据整理代码

视频


前置:

1 本系列将以 “A股复权计算_” 开头放置在“随想”专栏
2 权息数据结合 “PostgreSQL_” 系列博文中的股票未复权数据,可以自行计算复权日数据

获取数据代码 

配股数据

df = DataAPI.EquAllotGet(secID=u"",ticker=u"",isAllotment=u"1",beginDate=u"19900101",endDate=u"20250331",field=u"",pandas="1")
df.to_csv('peigu600.csv')

分红数据

 df = DataAPI.EquDivGet(secID=u"",ticker=u"",eventProcessCD=u"6",exDivDate="",beginDate=u"19900101",endDate=u"20250331",beginPublishDate=u"",endPublishDate=u"",beginRecordDate=u"",endRecordDate=u"",field=u"",pandas="1")
df.to_csv('fenhong600.csv')

拆股数据

 df = DataAPI.EquSplitsGet(secID=u"",ticker=u"",beginDate=u"19900101",endDate=u"20250331",field=u"",pandas="1")
df.to_csv('chaigu600.csv')

数据整理代码

import pandas as pd

def temp_000():
    pre_dir = r'E:/temp003/'
    df_splits = pd.read_csv(pre_dir + 'chaigu600.csv',encoding='utf-8')
    df_allotment = pd.read_csv(pre_dir + 'peigu600.csv',encoding='utf-8')
    df_equdiv = pd.read_csv(pre_dir + 'fenhong600.csv',encoding='utf-8')

    col_splits = ['ticker','reTradeDate','splitsRatio']
    col_allotment = ['ticker','exRightsDate','allotmentRatio','allotmentPrice']
    col_equdiv = ['ticker','exDivDate','bonusShareListDate','perShareDivRatio','perShareTransRatio','perCashDiv']
    target_col = ['ticker','exDate','perShareTransRadio','perCashDiv','allotmentRatio','allotmentPrice']

    df_equdiv['perShareDivRatio'] = df_equdiv['perShareDivRatio'].fillna(0)
    df_equdiv['perShareTransRatio'] = df_equdiv['perShareTransRatio'].fillna(0)

    df_equdiv.dropna(how='all',subset=['exDivDate','bonusShareListDate'],inplace=True)
    df_splits = df_splits.loc[df_splits['splitsRatio']>=1].copy()

    df_splits['ticker'] = df_splits['secID'].str.slice(0,6)
    df_allotment['ticker'] = df_allotment['secID'].str.slice(0,6)
    df_equdiv['ticker'] = df_equdiv['secID'].str.slice(0,6)

    df_splits = df_splits.loc[:,col_splits].copy()
    df_allotment = df_allotment.loc[:,col_allotment].copy()
    df_equdiv = df_equdiv.loc[:,col_equdiv].copy()

    df_equdiv['exDivDate'] = df_equdiv['exDivDate'].fillna(df_equdiv['bonusShareListDate'])
    df_equdiv['perShareTransRadio'] = df_equdiv['perShareDivRatio'] + df_equdiv['perShareTransRatio']

    # merge
    df = pd.DataFrame(columns=['ticker','exDate','perShareTransRadio','perCashDiv'])
    df['ticker'] = df_equdiv['ticker'].to_list()
    df['exDate'] = df_equdiv['exDivDate'].to_list()
    df['perShareTransRadio'] = df_equdiv['perShareTransRadio'].to_list()
    df['perCashDiv'] = df_equdiv['perCashDiv'].to_list()

    df_allotment.rename(columns={'exRightsDate':'exDate'},inplace=True)
    df_splits.rename(columns={'reTradeDate':'exDate'},inplace=True)

    df = pd.merge(df,df_allotment,on=['ticker','exDate'],how='outer')
    df = pd.merge(df,df_splits,on=['ticker','exDate'],how='outer')

    # 拆股 eg:1股拆成10股,=》1股送9股
    df['perShareTransRadio'] = df['perShareTransRadio'].fillna(0)
    df.loc[df['splitsRatio'].notnull(),'perShareTransRadio'] = df['perShareTransRadio'] + df['splitsRatio'] -1

    df['perCashDiv'] = df['perCashDiv'].fillna(0)
    df['allotmentRatio'] = df['allotmentRatio'].fillna(0)
    df['allotmentPrice'] = df['allotmentPrice'].fillna(0)
    df['date_o'] = pd.to_datetime(df['exDate'])
    df.sort_values(by='date_o',inplace=True)
    df = df.loc[:,target_col]
    df.to_excel(pre_dir + '000.xlsx',engine='openpyxl')
    pass

if __name__ == '__main__':
    temp_000()
    pass

视频

https://www.bilibili.com/video/BV1jeZhYPEGA/
https://www.bilibili.com/video/BV1LoZ8Y8EN8/
https://www.bilibili.com/video/BV1acZhYdEdU/
https://www.bilibili.com/video/BV1xLZhYjEMx/
https://www.bilibili.com/video/BV1xLZhYjEMP/

相关文章:

  • 自适应二值化与形态学变换在图像颜色识别与替换中的应用解析
  • .Net中的流处理类总结 Stream/FileStream/MemoryStream/NetworkStream/StreamReader
  • 04-深入解析 Spring 事务管理原理及源码
  • YOLOv5配置训练以及华为昇腾910B推理
  • JavaScript数组Array的使用:添加、删除、排序、遍历、互转
  • 【python中级】使用 distutils 和wheel生成whl 轮子文件
  • 蓝桥杯 切割
  • 深入探究Spring MVC
  • C++学习day4
  • 基于大数据分析的门户信息推荐系统
  • 《STL 六大组件之容器篇:简单了解 list》
  • 国家天文台携手阿里云,发布国际首个太阳大模型“金乌”
  • 用Python实现TCP代理
  • Java数据类型与数据库类型映射技术文档
  • 基础框架系列分享:一个通用的Excel报表生成管理框架
  • MQTT 服务器(emqx)搭建及使用(一)
  • [图论]拓扑排序
  • 【JavaEE】MyBatis - Plus
  • deepseek v3-0324 化学键线式Canvas编辑器设计
  • 线程池自顶向下
  • 大外交|巴西总统卢拉第六次访华签署20项协议,“双方都视对方为机遇”
  • 央媒评网红质疑胖东来玉石定价暴利:对碰瓷式维权不能姑息
  • “11+2”复式票,宝山购彩者领走大乐透1170万头奖
  • 全球医药股普跌,A股创新药板块下挫
  • 外交部就习近平主席将出席中拉论坛第四届部长级会议开幕式介绍情况
  • 汇源果汁发文:经营情况一切正常