Tushare Day3——了解stock_company并与stock_basic数据规模进行比较

了解stock_company

1 stock_company的基本信息

Tushare Day3——了解stock_company并与stock_basic数据规模进行比较
Tushare Day3——了解stock_company并与stock_basic数据规模进行比较
Tushare Day3——了解stock_company并与stock_basic数据规模进行比较

2 由于导入限制,把股票分成上交所和深交所分别导入

# username = 'root'
# password = '000000'

import pandas as pd
import tushare as ts
# from sqlalchemy import create_engine 
# import pymysql
# pymysql.install_as_MySQLdb()

2.1 设置fields为交易所以外的信息

fields_list = ["ts_code", # 0 股票代码
          "exchange", # 1 交易所代码 SSE上交所 SZSE深交所
          "chairman", # 2 法人代表
          "manager", # 3 总经理
          "secretary", # 4 董秘
          "reg_capital", # 5 注册资本
          "setup_date", # 6 注册日期
          "province", # 7 所在省份
          "city", # 8 所在城市
          "introduction", # 9 公司介绍
          "website", # 10 公司主页
          "email", # 11 电子邮件
          "office", # 12 办公室
          "employees", # 13 员工人数
          "main_business", # 14 主要业务及产品
          "business_scope", # 15 经营范围
         ]
fields = 'ts_code,exchange,chairman,manager,secretary,reg_capital,setup_date,province,city,introduction,website,email,office,employees,main_business,business_scope'

2.2 导入股票信息

pro = ts.pro_api()

2.3 分别取出上交所和深交所的信息并以dataframe的形式保存

# 一次只能取4000条,所以根据交易所分批提取
df_SZSE = pro.stock_company(exchange='SZSE' # 交易所代码 SZSE深交所
                            ,fields=fields  # 如果这个fields不写会出错
                           )
df_SZSE.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2437 entries, 0 to 2436
Data columns (total 16 columns):
 #   Column          Non-Null Count  Dtype  
---  ------          --------------  -----  
 0   ts_code         2437 non-null   object 
 1   exchange        2437 non-null   object 
 2   chairman        2436 non-null   object 
 3   manager         2408 non-null   object 
 4   secretary       2435 non-null   object 
 5   reg_capital     2437 non-null   float64
 6   setup_date      2437 non-null   object 
 7   province        2437 non-null   object 
 8   city            2437 non-null   object 
 9   introduction    2433 non-null   object 
 10  website         2401 non-null   object 
 11  email           2432 non-null   object 
 12  office          2437 non-null   object 
 13  business_scope  2437 non-null   object 
 14  employees       2434 non-null   float64
 15  main_business   2428 non-null   object 
dtypes: float64(2), object(14)
memory usage: 304.8+ KB
df_SSE = pro.stock_company(exchange='SSE' # 交易所代码 ,SSE上交所
#                            , fields=fields
                          )
df_SSE.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1871 entries, 0 to 1870
Data columns (total 12 columns):
 #   Column       Non-Null Count  Dtype  
---  ------       --------------  -----  
 0   ts_code      1871 non-null   object 
 1   exchange     1871 non-null   object 
 2   chairman     1871 non-null   object 
 3   manager      1830 non-null   object 
 4   secretary    1868 non-null   object 
 5   reg_capital  1871 non-null   float64
 6   setup_date   1871 non-null   object 
 7   province     1869 non-null   object 
 8   city         1869 non-null   object 
 9   website      1842 non-null   object 
 10  email        1868 non-null   object 
 11  employees    1870 non-null   float64
dtypes: float64(2), object(10)
memory usage: 175.5+ KB

2.4 将上交所和深交所的信息纵向合并并储存

frames = [df_SZSE, df_SSE] #把二者合并

data = pd.concat(frames, ignore_index = True) #展示出来  #这里一定要ignore_index,否则会出错
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4308 entries, 0 to 4307
Data columns (total 16 columns):
 #   Column          Non-Null Count  Dtype  
---  ------          --------------  -----  
 0   ts_code         4308 non-null   object 
 1   exchange        4308 non-null   object 
 2   chairman        4307 non-null   object 
 3   manager         4238 non-null   object 
 4   secretary       4303 non-null   object 
 5   reg_capital     4308 non-null   float64
 6   setup_date      4308 non-null   object 
 7   province        4306 non-null   object 
 8   city            4306 non-null   object 
 9   introduction    2433 non-null   object 
 10  website         4243 non-null   object 
 11  email           4300 non-null   object 
 12  office          2437 non-null   object 
 13  business_scope  2437 non-null   object 
 14  employees       4304 non-null   float64
 15  main_business   2428 non-null   object 
dtypes: float64(2), object(14)
memory usage: 538.6+ KB
data.head()
business_scope chairman city email employees exchange introduction main_business manager office province reg_capital secretary setup_date ts_code website
0 入境旅游业务;国内旅游业务;出境旅游业务;保险兼业代理;因特网信息服务业务(除新闻、出版、教... 冯滨 北京市 stock@utourworld.com 5468.0 SZSE 公司是中国最大的出境游运营商之一,主要经营出境游批发、零售、商务会奖旅游业务。公司坚持实施“... 主营业务:旅游产品制造者和服务提供商.公司是出境旅游专业运营商,主要从事出境旅游的批发,零售... 冯滨 北京市朝阳区朝阳公园路8号西2门01号 北京 87911.5520 郭镭 19920811 002707.SZ www.uzai.com
1 原料药生产(按药品生产许可证核定事项和期限从事经营);创新药品的技术开发、技术服务;化学原料... 居年丰 重庆市 porton.db@porton.cn 2373.0 SZSE 公司是一家按照国际标准为跨国制药公司和生物技术公司提供医药定制研发生产服务的*高新技术企... 主营业务:医药定制研发生产服务,主要产品是创新药医药中间体. 居年丰 重庆市北碚区水土园区方正大道重庆博腾制药科技股份有限公司新药外包服务基地研发中心 重庆 54274.7533 陶荣 20050707 300363.SZ www.porton.cn
2 电子产品、通信设备、软件及器件(音像制品除外)的研发、生产、 销售、进出口及相关领域内的技术... 郎晓刚 上海市 investment@fortune-co.com 167.0 SZSE 公司是国内领先的IC产品授权分销商,分销的IC产品以通讯连接芯片、射频和功率放大芯片和传感器... 主要产品:无线连接芯片,WiFi及网络处理器芯片,传感器芯片,射频及功率放大器件等;主营业务... 葛琼 上海市徐汇区田林路200号A号楼301室 上海 47706.8962 庞军 20001009 300493.SZ www.fortune-co.com
3 计算机网络技术服务; 计算机软件技术开发、技术咨询、技术服务、技术转让;计算机软件销售;机电... 郑乐观 郑州市 dongshihui@jiean.net 531.0 SZSE 公司是专注于研发并提供虚拟仿真培训解决方案的服务商。业务涵盖轨道交通、焊接、航空航天、国防军... 公司是专注于轨道交通,安全作业,船舶等领域计算机仿真实训系统研发与技术服务的整体解决方案提供商 高志生 河南省郑州市中原区高新技术产业开发区科学大道133号11层 河南 9235.6000 牛红勋 20020603 300845.SZ www.jantech.cn
4 生产销售高纯银及银制品、高纯硝酸银、银基纳米抗菌剂、电解铅、粗铅、高纯铋、电积铜、氧气、氮气... 曹永贵 郴州市 jinguizq@jingui-silver.com;caoyg@jingui-silver... 453.0 SZSE 公司是一家以生产经营高纯银及银深加工为主的高新技术企业。主营业务为从铅冶炼阳极泥及矿冶企业废... 主营业务:是以白银冶炼和深加工为主,配套铅冶炼,并综合回收金,铋,锑,锌,铜,铟等有价金属.... 曹永贵 湖南省郴州市苏仙区白露塘镇福城大道1号 湖南 96047.8192 曹永贵 20041108 002716.SZ www.jingui-silver.com
data.to_csv('stock_company.csv', index=False)
data = pd.read_csv('stock_company.csv')
data.head()
ts_code exchange chairman manager secretary reg_capital setup_date province city introduction website email office business_scope employees main_business
0 300430.SZ SZSE 梁凯 梁凯 邱义鹏 27200.8896 20030722 北京 北京市 公司系医药、生物工业自动化控制系统整体解决方案的提供商,专注于制药、生物制品生产过程中的自动... www.ctntech.com sec@eastctn.com 北京市大兴区生物医药产业基地庆丰西路27号 技术开发、技术服务;销售机械电子设备、仪器仪表、计算机软硬件及外围设备;货物进出口;物业管理... 1354.0 主要产品:自动化控制系统,自制关键系统设备及组件,技术服务和其他产品.主营业务:面向大中型制...
1 300333.SZ SZSE 魏恺言 魏恺言 余凯 33600.0000 20030416 广东 深圳市 公司是一家以现代密码技术为基础,移动通讯技术为平台,支付安全为核心的国家高新技术企业。近几年... www.sinosun.com.cn IR@sinosun.com.cn 广东省深圳市福田区车公庙泰然八路泰然大厦C座1605 计算机软件、硬件、电子产品的技术开发、销售和技术咨询;生产经营通信设备(不含手机);机械设备... 361.0 公司自成立以来,一直专注于票据防伪领域,将现代密码技术为核心的信息安全技术应用于票据防伪,为...
2 002953.SZ SZSE 冯就景 李强 孟兆滨 17387.9128 20091217 广东 中山市 公司成立于2009年12月17日,是一家自主研发并专业制造橡套类电线电缆的企业,主要从事电气... www.rfcable.com.cn rfgf@rfcable.com.cn 广东省中山市西区广丰工业园 生产销售与研究开发:数据通信电缆、高频数据线、家电组件(不含线路板、电镀)、特种装备电缆、海... 1834.0 主要从事电气设备和特种装备配套电缆的研发,生产和销售,产品主要包括空调连接线组件,小家电配线...
3 003030.SZ SZSE 蔡祖明 蔡祖明 高锋 12478.0000 20000218 浙江 杭州市 公司从创建至今,一直秉持“做健康食品,关注人类健康”的理念,凭借优质的产品和完善的服务,产品... www.chinazuming.cn zumingzqb@chinazuming.cn 浙江省杭州市滨江区江陵路77号 生产:豆制品(非发酵性豆制品、其他豆制品),饮料(蛋白饮料类),蛋制品(其他类),果冻,淀粉... 3313.0 主营业务为豆制品的研发,生产和销售,主要产品为生鲜豆制品,植物蛋白饮品,休闲豆制品等
4 300550.SZ SZSE 杨一兵 戴泽宇 章逸 18992.9258 20101026 浙江 杭州市 公司是一家具有核心产品的数字医疗信息服务提供商。公司为国内数字化医院建设、区域卫生信息化建设... www.herenit.com contact@herenit.com 浙江省杭州市滨江区西兴街道新联路625号 第二类:软件经营;第二类 6870 软件生产( 生产地址详见《医疗器械生产企业许可证》)。服... 591.0 主营业务:医疗机构临床医疗管理信息系统及数字化场景应用系统的研发销售,实施集成,服务支持.核...

查看共有有多少支不重复的股票

data.ts_code.unique()
array(['300430.SZ', '300333.SZ', '002953.SZ', ..., '688177.SH',
       '603198.SH', '603186.SH'], dtype=object)
data.ts_code.unique().shape  
(4308,)

发现与stock_basic的4301有差别,肯定是哪里出了问题

#这里注释掉的部分可以挑选出部分感兴趣的信息进行研究

#fields_intrested = [
#     "ts_code", # 0 股票代码
#                     "introduction", # 9 公司介绍
                    "reg_capital", # 5 注册资本
#                     "setup_date", # 6 注册日期
                    "employees", # 13 员工人数
                    "main_business", # 14 主要业务及产品
#                     "business_scope", # 15 经营范围
#                   ]
# data[fields_intrested].head()

2.5 用stock_basic表查询当前正常上市、暂停上市、退市的股票列表

#查询当前所有正常上市交易的股票列表
data_1 = pro.stock_basic(list_status='L') # 正常流通
data_2 = pro.stock_basic(list_status='D') # 已退市
data_3 = pro.stock_basic(list_status='P') # 暂停上市
frames = [data_1, data_2, data_3]

data_sb = pd.concat(frames, ignore_index = True)#这里一定要ignore_index,否则会出错
data_sb.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4301 entries, 0 to 4300
Data columns (total 7 columns):
 #   Column     Non-Null Count  Dtype 
---  ------     --------------  ----- 
 0   ts_code    4301 non-null   object
 1   symbol     4301 non-null   object
 2   name       4301 non-null   object
 3   area       4173 non-null   object
 4   industry   4173 non-null   object
 5   market     4300 non-null   object
 6   list_date  4301 non-null   object
dtypes: object(7)
memory usage: 235.3+ KB

从stock_basic中正常上市、暂停上市、退市的股票列表连接起来,发现stock_basic的股票数为4301

2.6 探索stock_company和stock_basic究竟哪里不同导致股票总数不同

2.6.1 将stock_basic表(data_sb)和stock_company表(data)左右连接进行比较

data_c_sb = pd.merge(data_sb, data   #将data_sb与data连接起来
                    , how='outer' # 如果说一个有ts_code,另一个没有,那么会保留,并用缺失值填充
                    , on=None
                    , left_on='ts_code'  
                    , right_on='ts_code'  #左右都用ts_code连在一起
                    ,left_index=False
                    , right_index=False
                    , sort=True
                    , copy=True
                    , indicator=False
                    ,validate=None)
data_c_sb.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 4315 entries, 0 to 4314
Data columns (total 22 columns):
 #   Column          Non-Null Count  Dtype  
---  ------          --------------  -----  
 0   ts_code         4315 non-null   object 
 1   symbol          4301 non-null   object 
 2   name            4301 non-null   object 
 3   area            4173 non-null   object 
 4   industry        4173 non-null   object 
 5   market          4300 non-null   object 
 6   list_date       4301 non-null   object 
 7   exchange        4308 non-null   object 
 8   chairman        4307 non-null   object 
 9   manager         4238 non-null   object 
 10  secretary       4303 non-null   object 
 11  reg_capital     4308 non-null   float64
 12  setup_date      4308 non-null   float64
 13  province        4306 non-null   object 
 14  city            4306 non-null   object 
 15  introduction    2433 non-null   object 
 16  website         4243 non-null   object 
 17  email           4300 non-null   object 
 18  office          2437 non-null   object 
 19  business_scope  2437 non-null   object 
 20  employees       4304 non-null   float64
 21  main_business   2428 non-null   object 
dtypes: float64(3), object(19)
memory usage: 775.4+ KB

刚刚合并之前左边4301,右边4308.现在是4315,证明多了几行。

2.6.2 查看异常值

2.6.2.1 异常行

# 查看异常值
data_null = data_c_sb[data_c_sb.isnull().any(axis=1)]  #axis=1查看某行是否有异常值
data_null #以下行都存在异常值(缺失值)
ts_code symbol name area industry market list_date exchange chairman manager ... setup_date province city introduction website email office business_scope employees main_business
2 000003.SZ 000003 PT金田A(退) None None 主板 19910703 SZSE 马钟鸿 马钟鸿 ... 19880310.0 广东 深圳市 公司成立于1988年2月8日,其前身为成立于1982年的深圳市纺织工业供销公司,1989年经... NaN Regintian@163.com 广东省深圳市盐田综合保税区金马创新产业园B栋九层 工业(包括但不限于纺织业、电子、建材、化工、家电、五金、珠宝、首饰)生产与经营;房地产开发与... 124.0 NaN
12 000013.SZ 000013 *ST石化A(退) None None 主板 19920506 SZSE 厉怒江 阮克竖 ... 19880920.0 广东 深圳市 公司根据国家股份有限公司条例的规定,经深圳市人民*批准,由原深圳市石油化工(集团)公司改组... NaN spec@sina.com 广东省深圳市深南中路2201号嘉麟豪庭B座1701 自营和代理第二第三类商品出口及省内进口业务;进出口商品的内销;本公司进出口商品的内销;化工新... 197.0 NaN
14 000015.SZ 000015 PT中浩A(退) None None 主板 19920625 SZSE 宿南南 马骧 ... 19880408.0 广东 深圳市 公司原于1988年4月8日由中国食品工业技术开发总公司发起成立,1991年经深圳市人民*(... NaN jiangxiaoan@szzhgroup.com 广东省深圳市大鹏新区葵涌街道迅宝循环经济园二期研发大楼 从事珠宝、钻石、黄金饰品的批发及零售,奢侈品投资,投资兴办实业,企业管理(不含限制项目),物... 322.0 依托全资子公司相关业务,形成黄金钻石及珠宝的批发,零售和环保食品包装容器的生产,加工和销售的...
17 000018.SZ 000018 神城A退(退) None None 主板 19920616 SZSE 陈略 陈略 ... 19840427.0 四川 内江市 公司是一家全国领先的综合工程施工承包商,具有大型工程PM、EPC、BT、BOT、PPP等领先... www.sgwde.com 000018sz@sina.com 北京市亦庄开发区经海三路109号神州长城科技楼 生产经营纺织工业品及所需的原材料、辅料、机械设备、各种面料服装,并提供相关的服务(不含现行许... 237.0 主要业务:建筑装饰工程施工.
22 000024.SZ 000024 招商地产(退) None None 主板 19930607 SZSE 孙承铭 许永军 ... 19900919.0 广东 深圳市 公司是一家房地产公司。主营房地产开发销售,还有出租物业经营、园区供电物业管理、酒店管理、房地... www.cmpd.cn cmpdir@cmhk.com 广东省深圳市南山区蛇口工业区兴华路六号南海意库三号楼 房地产开发经营、科研技术服务、兴办实业(具体项目另行申报)。 16720.0 主要业务:商品房开发,房屋租赁,园区供电供水,石化分销.
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
4310 688788.SH 688788 科思科技 深圳 通信设备 科创板 20201022 SSE 刘建德 刘建德 ... 20040227.0 广东 深圳市 NaN www.consys.com.cn securities@consys.com.cn NaN NaN 487.0 NaN
4311 688819.SH 688819 天能股份 浙江 电气设备 科创板 20210118 SSE 杨建芬 杨建芬 ... 20030313.0 浙江 湖州市 NaN www.cn-tn.com dshbgs@tiannenggroup.com NaN NaN 22420.0 NaN
4312 688981.SH 688981 中芯国际-U 上海 半导体 科创板 20200716 SSE 周子学 NaN ... 20000403.0 NaN NaN NaN www.smics.com ir@smics.com NaN NaN 15795.0 NaN
4313 689009.SH 689009 九号公司-UWD 北京 专用机械 CDR 20201029 NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4314 T00018.SH T00018 上港集箱(退) None None None 20000719 NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

1995 rows × 22 columns

# 有一千多家是对不上的 这个在后期查询的时候一定注意,应当列出股票列表,确保信息完整
data_null.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1995 entries, 2 to 4314
Data columns (total 22 columns):
 #   Column          Non-Null Count  Dtype  
---  ------          --------------  -----  
 0   ts_code         1995 non-null   object 
 1   symbol          1981 non-null   object 
 2   name            1981 non-null   object 
 3   area            1853 non-null   object 
 4   industry        1853 non-null   object 
 5   market          1980 non-null   object 
 6   list_date       1981 non-null   object 
 7   exchange        1988 non-null   object 
 8   chairman        1987 non-null   object 
 9   manager         1918 non-null   object 
 10  secretary       1983 non-null   object 
 11  reg_capital     1988 non-null   float64
 12  setup_date      1988 non-null   float64
 13  province        1986 non-null   object 
 14  city            1986 non-null   object 
 15  introduction    113 non-null    object 
 16  website         1923 non-null   object 
 17  email           1980 non-null   object 
 18  office          117 non-null    object 
 19  business_scope  117 non-null    object 
 20  employees       1984 non-null   float64
 21  main_business   108 non-null    object 
dtypes: float64(3), object(19)
memory usage: 358.5+ KB

2.6.2.2异常列

data_c_sb.isnull().any()  #df.isnull().any()会判断哪些”列”存在缺失值
ts_code           False
symbol             True
name               True
area               True
industry           True
market             True
list_date          True
exchange           True
chairman           True
manager            True
secretary          True
reg_capital        True
setup_date         True
province           True
city               True
introduction       True
website            True
email              True
office             True
business_scope     True
employees          True
main_business      True
dtype: bool

2.6.2.3 异常元素

data_null.isnull().head()  #这样可以更清晰的查看哪些元素存在异常值
ts_code symbol name area industry market list_date exchange chairman manager ... setup_date province city introduction website email office business_scope employees main_business
2 False False False True True False False False False False ... False False False False True False False False False True
12 False False False True True False False False False False ... False False False False True False False False False True
14 False False False True True False False False False False ... False False False False True False False False False False
17 False False False True True False False False False False ... False False False False False False False False False False
22 False False False True True False False False False False ... False False False False False False False False False False

5 rows × 22 columns

上一篇:C++类(一)类的定义


下一篇:(精华)2020年9月6日 C#基础知识点 Linq的使用场景