了解stock_company
- 1 stock_company的基本信息
- 2 由于导入限制,把股票分成上交所和深交所分别导入
1 stock_company的基本信息
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 | 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 | 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 | 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 | 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