一、数据集介绍

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

60079

上市公司总数

mda_df.code.nunique()

Run

5606



四、说明

从代码运行发现, md&a记录量少于年报记录量。这是由于 mda01-23.csv.gz 是从 A01-23.csv.gz 中生成的, 由于上市公司的年报不是一套模板生成的, 每个公司模板不同,甚至每个公司前后年度报告的排版也会发生变化。在编程提取md&a的过程中, 会因排版规则不能穷举, 导致md&a样本量略微小于年报的样本量。 提取md&a的工具是 大邓开发的cntext2.1.1库 ,使用的内置函数 mda=ct.extract_mda(text)

我们这里不展示提取过程,仅展示说明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.9901137847416527



五、相关内容



六、获取数据

数据集 100 元,加微信 372335839, 备注「姓名-学校-专业」



广而告之