python_股票增加控制人与流通股东等筛选条件

news2024/11/19 10:47:25

目录

写字前面:

结果展示

获取数据

行业数据

控制人数据

 十大流通股东数据

 开始合并

1 从行业数据中提取证券股的行业数据

2 合并控制人数据 

3 合并十大流通股东 

4 把三个结果按列合并


写字前面:

在分析数据的时候,常常需要的字段分散在多个文档里,这时候就需要把这些字段合并到一起方便查看和分析。本文以证券板块的股票为例,整合行业、控制人、十大流通股东这三项数据。

结果展示

 

获取数据

行业数据

数据来源优矿【具体优矿的使用过程看“python_寻找底部股票”博文】

下载的文件存储为industry_list.csv

控制人数据

 巨潮-》数据-》专题统计-》股本股东-》实际控制人持股变动

可以直接下载

注意:好像非交易日没法打开,那我这就不截网站的图了。

下图是下载后的数据:

 十大流通股东数据

通过akshare获取

akshare文档中  Welcome to AKShare’s Online Documentation! — AKShare 1.10.57 文档

有股票基本面数据的接口

路径:数据字典-》股票数据-》基本面数据-》流通股东

 注意:最好使用python3.8或python3.8以上版本安装akshare包执行接口代码

    import akshare as ak
    pre_dir = r'D:/temp001/'
    code_list = ['000166','000686','000712','000728','000750','000776','000783','002500','002670','002673','002736','002797','002926','002939','002945','300059','600030','600061','600095','600109','600155','600369','600621','600837','600864','600906','600909','600918','600858','600999','601059','601066','601099','601108','601136','601162','601198','601211','601236','601375','601377','601456','601555','601688','601696','601788','601878','601881','601901','601990','601995']
    for code in code_list:
        # 流通股东
        try:
            df = ak.stock_circulate_stock_holder(symbol=code)
            df.to_excel(f'{pre_dir}流通股东_{code}.xlsx', engine='openpyxl')
        except Exception as e:
            print(str(e))
            print(f'{code} 失败')
            pass
        time.sleep(5)

 开始合并

已知:证券股代码列表

1 从行业数据中提取证券股的行业数据

def method_001():
    res_dir = r'D:/temp000/'
    def pd_000(x):
        sec_str = x['secID']
        res_str = sec_str.split('.')[0]
        return res_str
    industry_path = r'D:/temp000/industry_list.csv'
    code_list = ['000166','000686','000712','000728','000750','000776','000783','002500','002670','002673','002736','002797','002926','002939','002945','300059','600030','600061','600095','600109','600155','600369','600621','600837','600864','600906','600909','600918','600858','600999','601059','601066','601099','601108','601136','601162','601198','601211','601236','601375','601377','601456','601555','601688','601696','601788','601878','601881','601901','601990','601995']
    df = pd.read_csv(industry_path,encoding='utf-8')
    df = df.loc[df['isNew']==1].copy()
    df['ticker00'] = df.apply(pd_000,axis=1)
    df00 = df.loc[df['ticker00'].isin(code_list)].copy()
    df00 = df00.loc[:,['ticker00','secShortName','industryName1','industryName2','industryName3']]
    df00.to_excel(res_dir+'industry_000.xlsx',engine='openpyxl')
    pass

执行后结果

2 合并控制人数据 

def method_002():
    res_dir = r'D:/temp003/'
    code_list = ['000166', '000686', '000712', '000728', '000750', '000776', '000783', '002500', '002670', '002673',
                 '002736', '002797', '002926', '002939', '002945', '300059', '600030', '600061', '600095', '600109',
                 '600155', '600369', '600621', '600837', '600864', '600906', '600909', '600918', '600858', '600999',
                 '601059', '601066', '601099', '601108', '601136', '601162', '601198', '601211', '601236', '601375',
                 '601377', '601456', '601555', '601688', '601696', '601788', '601878', '601881', '601901', '601990',
                 '601995']

    control_path = r'D:/temp000/专题统计_实际控制人持股变动.xlsx'
    df = pd.read_excel(control_path,engine='openpyxl')
    df = df.loc[:,['证券代码','实际控制人名称','控股数量(万股)','控股比例(%)','直接控制人名称','控制类型']].copy()
    df = df.loc[df['证券代码'].isin(code_list)].copy()
    df.to_excel(res_dir+'control_000.xlsx',engine='openpyxl')
    pass

执行后结果

3 合并十大流通股东 

先看下每个股票十大流通股东的数据结构

它是每季度十行数据,只取最新一季度的十大流通股东,把十行的股东名称转成一个字符串,彼此之间用分号隔开

def method_003():
    code_list = ['000166', '000686', '000712', '000728', '000750', '000776', '000783', '002500', '002670', '002673',
                 '002736', '002797', '002926', '002939', '002945', '300059', '600030', '600061', '600095', '600109',
                 '600155', '600369', '600621', '600837', '600864', '600906', '600909', '600918', '600858', '600999',
                 '601059', '601066', '601099', '601108', '601136', '601162', '601198', '601211', '601236', '601375',
                 '601377', '601456', '601555', '601688', '601696', '601788', '601878', '601881', '601901', '601990',
                 '601995']
    # pre_dir 十大流通股东文件存储的文件夹
    pre_dir = r'D:/temp000/000/'
    results_list = []
    for code in code_list:
        print(code)
        file_name = f"流通股东_{code}.xlsx"
        file_path = pre_dir + file_name

        df = pd.read_excel(file_path,engine='openpyxl')
        # 取最新的一次十大流通股东
        df = df.iloc[0:10].copy()
        holders = df['股东名称'].values.tolist()
        holders_str = ';'.join(holders)
        date = df.iloc[0]['截止日期']
        results_list.append(
            {
                'ticker':code,
                'date':date,
                'circulation_holders':holders_str
            }
        )
        pass
    res_df = pd.DataFrame(results_list)
    res_df.to_excel('D:/temp003/holders_000.xlsx',engine='openpyxl')
    pass

 执行结果

4 把三个结果按列合并

def method_004():
    one_path = r'D:/temp003/industry_000.xlsx'
    two_path = r'D:/temp003/control_000.xlsx'
    three_path = r'D:/temp003/holders_000.xlsx'
    df_one = pd.read_excel(one_path,engine='openpyxl',converters={'ticker00':str})
    df_two = pd.read_excel(two_path,engine='openpyxl',converters={'证券代码':str})
    df_three = pd.read_excel(three_path,engine='openpyxl',converters={'ticker':str})
    df00 = pd.merge(df_one,df_two,how='inner',left_on='ticker00',right_on='证券代码')
    df01 = pd.merge(df00,df_three,how='inner',left_on='ticker00',right_on='ticker')
    df01.to_excel(r'D:/temp003/res_000.xlsx',engine='openpyxl')
    pass

 最终结果

把数据都合并到一个表后,就可以进行下一步的分析了。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/756149.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hippo4j监控RabbitMQ框架的线程池

🚀 线程池管理工具-Hippo4j 🚀 🌲 AI工具、AI绘图、AI专栏 🍀 🌲 如果你想学到最前沿、最火爆的技术,赶快加入吧✨ 🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者&#…

【分布式系统管理框架】Zookeeper集群

分布式系统管理框架 1. Zookeeper1.1 Zookeeper概述1.2 Zookeeper工作机制1.3 Zookeeper特点1.4 Zookeeper数据结构1.5 Zookeeper应用场景1.6 Zookeeper选举机制 2.部署Zookeeper集群3. 知识点总结3.1 zookeeper3.2 zookeeper选举机制 1. Zookeeper 1.1 Zookeeper概述 Zookee…

什么是微服务架构

什么是微服务架构🍉 你考虑过吗?什么是微服务,为什么越来越多的企业,为了使自己构建的应用满足客户的期望,而和微服务架构进行整合呢? 微服务,又叫微服务架构,是一种软件架构方式。…

web-报错注入

必要的函数 rand select rand(0) from hackbiao; rand(0):生成以0开头的随机数,生成的数量与字段下数据的条数相等。如果i没有这个地段的话,就会自己形成一个新的字段打印出来。 count和group by grouip by在进行排序的时候,会…

网络线程模型

堵塞IO模型:每个连接都由独立的线程进行处理。当并发度较高时系统资源占用较大,并且如果线程发生了IO堵塞还会浪费线程资源Reactor模型:reactor线程监听,并分发事件给相应的handlerProactor模型:交由系统进行异步处理&…

海岸带地物分类步骤

1.读取图像 使用 Envi 打开 imageKSC.tif 影像。在 Toolbox 工具栏中选择 Spectral->Build 3D Cube。在 3D Cube File 对话框中选择高光谱数据集,显示信息为 614*512*176 的高光谱影像,单击 OK 按钮。 图1 原始影像 2.选择波段 当打开 3D Cube RGB…

垃圾回收的核心知识点解析

目录 检测垃圾引用计数算法可达性分析算法 回收垃圾标记清除算法复制算法标记整理算法分代算法 Java运行时内存中的程序计数器、虚拟机栈、本地方法栈这三部分区域其生命周期与相关线程有关,随线程而生,随线程而灭。而程序计数器就是一个单纯存地址的整数…

Oracle Apex制作一个简单的交互式报表页面

简单查询一下: select ID,NAME,DESCRIPTION,PRICE from "FOOD_MENU" a 查询结果 创建交互式报表 工作报表展示 菜单报表展示 页设计器 改变布局样式 记得保存!!! 修改标签内容 添加验证&更改必填项 啥也…

BI-SQL丨XML

XML SQL Server中,存在一种特殊类型的数据,就是XML数据类型。 可能看到这里,小伙伴都会产生疑惑,XML不是Web语言么?为什么在SQL Server里面也会有XML数据类型? 这个就要从SQL Server的应用开始说起了&am…

自动驾驶MCU 软件架构说明

目录 1 文档... 2 1.1.1 变更历史... 2 1.1.2 Term.. 2 1.1.3 引用文档... 2 2 MCU软件框架图... 3 3 模块介绍... 3 文档 变更历史 版本Version 状态 Status 内容 Contents 日期 Date 撰写 Editor 批准 Approver V0.1 …

智慧工厂:如何打造工厂安全生产AI视频监管与风险预警系统?

一、背景需求 现代工厂多是机械操作,少量人员看守,甚至是无人化管理模式。企业都会在生产车间、仓库等重点区域安置摄像头留存画面用作回溯依据。但问题出现后再溯源,或许已经造成严重的生命安全事故和财产损失了。因此,对工厂各…

数据库技术与应用——目录篇

数据库技术与应用目录 文章目录 第1章 数据库基础知识数据库技术的概念数据管理的发展数据库的体系结构数据库管理系统常用的数据库管理系统介绍 第2章 信息得三种世界与数据模型信息的三种世界及其描述数据模型 第3章 关系模型关系模型的由来关系数据库的结构关系代数关系演算…

【算法练习】双指针

目录 移动零复写零快乐数盛最多水的容器有效三角形的个数和为s的两个数三数之和四数之和 移动零 算法原理: 数组划分(数组分块) 两个指针作用: cur:从左到右扫描数组,遍历数组 dest:已处理的区间内,非零元素…

比Wi-Fi快100倍!Li-Fi无线传输标准802.11bb正式发布:带宽高达224GB/s

大家对Wi-Fi可以说耳熟能详,最新标准已经演进到802.11be,即Wi-Fi 7,理论速率可达30Gbps。 现在,更强的来了。 IEEE今日正式签署802.11bb无线传输标准,即Li-Fi,基于光波的无线传输。 Li-Fi支持者认为&#x…

Appium+python自动化(五)- 模拟器(超详解)

简介 Appium是做安卓自动化的一个比较流行的工具,对于想要学习该工具但是又局限于或许当前有些小伙伴没 android 手机来说,可以通过安卓模拟器来解决该问题,下面就讲解使用appium连接安卓模拟器的操作步骤。而宏哥是由于手机数据线问题&#…

【大数据Hive】Hive 内部表与外部表使用详解

目录 一、hive 内部表简介 1.1 查看内部表信息 二、hive 外部表简介 三、内部表与外部表对比 四、内部表与外部表操作演示 4.1 内部表操作 4.1.1 数据准备 4.1.2 建表sql 4.2 外部表操作 4.2.1 建表sql 4.2.2 上传数据文件到 /stu目录 4.2.3 内部表删除 4.2.4 外部…

【一蹴而就】软著申请时,如何更高效地将源码进行格式处理和合并呢?这篇博客告诉你答案。

【一蹴而就】软著申请时,如何更高效地将源码进行格式处理和合并呢?这篇博客告诉你答案。 1,软著申请三要素2,源代码合成软件SourceConvert2.1 启动文件2.2 Spring项目源代码格式2.2.1 规律的包名2.2.2 核心文件 3,Sour…

[QT编程系列-10]:C++图形用户界面编程,QT框架快速入门培训 - 4- QT画图与动画

目录 4. QT画图与动画 4.1 QT的绘图系统 4.2 案例目标 4.3 绘制过程 4.4 更换控件的icon 4.5 案例2 4.6 坐标轴 4. QT画图与动画 4.1 QT的绘图系统 QT(也称为Qt Framework)是一种流行的跨平台应用程序开发框架,它提供了丰富的图形用户…

网页无插件播放265/264视频/监控大屏/GPU解码

网页无插件播放265/264视频/监控大屏/GPU解码 先看效果 特点 GPU解码,chrome网页播放32路 h256/hevc 直播视频流,毫无压力。提供1分屏、4分屏、8分屏、9分屏、16分屏、32分屏、64分屏分屏切换不会停止播放GPU解码、无插件播放自动识别264/265,并且都是…