整理到csv中
将70G定期报告披露数据集下载
链接: https://pan.baidu.com/s/1oboFUswiAMdA_Wn3xCh6YQ 提取码: g7bd
import os
import pdfdocx
import warnings
warnings.filterwarnings('ignore')
import pandas as pd
import re
def clean(text):
return re.sub('\s', ' ', text)
#文件夹列表
dirs = [d for d in os.listdir('reports') if 'DS' not in d]
for di in dirs:
datas = []
files = [f for f in os.listdir('reports/{d}'.format(d=di)) if 'z' in f]
for file in files:
try:
file = 'reports/{di}/{f}'.format(di=di, f=file)
code = file.split('/')[-1].split('_')[0]
year = re.findall('_(\d{4})_', file.split('/')[-1])[0]
text = clean(pdfdocx.read_pdf(file))
data = {'code': code, 'text': text, 'year':year}
datas.append(data)
except:
pass
df = pd.DataFrame(datas, columns=['code', 'year', 'text'])
#将每家公司的年报导出到csv中
df.to_csv('data.csv', index=False, mode='a+', encoding='utf-8')
#读取
ndf = pd.read_csv('data.csv')
#去重
ndf.drop_duplicates(inplace=True)
#清洗
ndf = ndf[ndf.code=!='code']
#导出到xlsx
ndf.to_excel('data.xlsx', index=False)
导入数据
excel数据下载链接: https://pan.baidu.com/s/1r4YRyxb7bTsx-_ayT4GDKQ 提取码: ew4v
import pandas as pd
df = pd.read_excel('data.xlsx')
df.head()
code | year | text | |
---|---|---|---|
0 | 603859 | 2017 | 2017年半年度报告1/116公司代码:603859公司简称:能科股份能科节能技术股份有限公... |
1 | 603859 | 2019 | 2019年半年度报告1/141公司代码:603859公司简称:能科股份能科科技股份有限公司2... |
2 | 603859 | 2018 | 2018年半年度报告1/120公司代码:603859公司简称:能科股份能科科技股份有限公司2... |
3 | 601500 | 2017 | 2017年半年度报告1/114公司代码:601500公司简称:通用股份江苏通用科技股份有限公... |
4 | 601500 | 2019 | 2019年半年度报告1/140公司代码:601500公司简称:通用股份江苏通用科技股份有限公... |
查看数据量
len(df)
16984
公司数
df.code.nunique()
1476
含有的年份
sorted(df.year.unique())
[2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019]
每家公司年报数
数据集中,平均每家公司的年报数
avg = len(df)/df.code.nunique()
round(avg, 2)
11.51
说明
数据是19年获取的,数据不全,下载过程中有部分pdf是破损的文件。
大家可以尝试该数据集训练会计年报词向量,看看有没有有趣的应用。
本数据可作探索实验性质,如果想在会计领域深入挖掘,建议找更全更精准的数据集。