其他
数据集(更新) | 2001-2023年A股上市公司年报&管理层讨论与分析
一、数据集介绍
2001-2023年A股年报数据集,含 4 个文件,约 15G。
- 管理层讨论与分析txt.zip
- 年报txt.zip
- A01-23.csv.gz
- mda01-23.csv.gz
注意
zip文件夹是原始数据, 解压后内部为 txt 文件。 gz文件为汇总数据, 解压后是csv文件。
二、年报数据
2001-2023年年报数据。数据中只有year、code、text三个字段, 如果想增加诸如公司简称、行业等信息, 可以使用 数据集 | A股上市公司基本信息 进行并表。
import pandas as pd
anual_report_df = pd.read_csv('A01-23.csv.gz', compression='gzip')
anual_report_df
年报记录数
len(anual_report_df)
Run
61980
上市公司总数
anual_report_df.code.nunique()
Run
5629
三、MD&A数据
2001-2023年MD&A数据, 数据中只有year、code、text三个字段, 如果想增加诸如公司简称、行业等信息, 可以使用 数据集 | A股上市公司基本信息 进行并表。
mda_df = pd.read_csv('mda01-23.csv.gz', compression='gzip')
mda_df
len(mda_df)
Run
59451
上市公司总数
mda_df.code.nunique()
Run
5531
四、说明
从代码运行发现, md&a记录量少于年报记录量。这是由于 mda01-23.csv.gz 是从 A01-23.csv.gz 中生成的, 由于上市公司的年报不是一套模板生成的, 每个公司模板不同,甚至每个公司前后年度报告的排版也会发生变化。在编程提取md&a的过程中, 会因排版规则不能穷举, 导致md&a样本量略微小于年报的样本量。
anual_report_df['year'] = anual_report_df['year'].astype(int)
mda_df['year'] = mda_df['year'].astype(int)
print('查看每年mda记录量与年报记录量之比')
for year in range(2001, 2024):
mda_record_num = len(mda_df[mda_df.year==year])
anual_report_record_num = len(anual_report_df[anual_report_df.year==year])
print(f'{year} :', mda_record_num/anual_report_record_num)
Run
查看每年mda记录量与年报记录量之比
2001 : 0.6546700942587832
2002 : 0.8569105691056911
2003 : 0.9287925696594427
2004 : 0.9550398839738942
2005 : 0.9707602339181286
2006 : 0.9745879120879121
2007 : 0.9821882951653944
2008 : 0.9846153846153847
2009 : 0.9859075535512966
2010 : 0.9868544600938968
2011 : 0.9894291754756871
2012 : 0.9891696750902527
2013 : 0.9901458415451321
2014 : 0.9905767056162834
2015 : 0.9922616953921913
2016 : 0.9926681542875359
2017 : 0.9934528892684316
2018 : 0.9892384105960265
2019 : 0.9639227642276422
2020 : 0.9642857142857143
2021 : 0.9310064935064936
2022 : 0.9838492597577388
2023 : 0.8729714605484051
五、获取数据
数据集 100 元,加微信 372335839, 备注「姓名-学校-专业」。