应用Python统计公司年报中指定词出现的次数

本文背景是大学关系很好的老师最近在做文本挖掘相关的项目,想要我用Python帮她实现公司年报中某些词出现次数的统计。

根据她提供的部分年报文档,设计了实现代码,只要把文档放到指定的文件夹中,即可全量实现。

从指定文档中统计词频可以应用在写毕业论文、行业分析、商业价值挖掘等多个模块,故把全量代码分享给更多有需要的朋友。

一、获取指定文件夹下的全量文件名

由于不同的项目文件数量和名称是不固定的,故写代码自动获取指定文件夹下所有的文件名。具体代码如下:

import os 

filePath = r'F:\82_年报分词\试试'   # 存放txt文档的文件路径
os.chdir(filePath)                         # 设置文件读取路径
files = os.listdir(filePath)               # 获取filePath路径下的所有txt文件
files

注:filePath要改成你存待统计词频的文件(年报)路径。

得到结果:

['000001_2002_20020418_2001年年度报告.txt',
 '000001_2003_20030424_2002年年度报告.txt',
 '000001_2004_20040415_2003年年度报告.txt',
 '000001_2005_20050426_2004年年度报告.txt',
 '000001_2006_20060401_2005年年度报告.txt',
 '000001_2007_20070322_2006年年度报告.txt',
 '000001_2008_20080320_2007年年度报告.txt',
 '000001_2009_20090320_2008年年度报告.txt',
 '000001_2010_20100312_2009年年度报告.txt',
 '000001_2011_20110225_2010年年度报告.txt',
 '000001_2012_20120309_2011年年度报告.txt',
 '000001_2013_20130308_2012年年度报告.txt',
 '000001_2014_20140307_2013年年度报告.txt',
 '000001_2015_20150313_2014年年度报告.txt',
 '000001_2016_20160310_2015年年度报告.txt',
 '000001_2017_20170317_2016年年度报告.txt',
 '000001_2018_20180315_2017年年度报告.txt',
 '000001_2019_20190307_2018年年度报告.txt',
 '000001_2020_20200214_2019年年度报告.txt',
 '000001_2021_20210202_2020年年度报告.txt',
 '000001_2022_20220310_2021年年度报告.txt',
 '000001_2023_20230309_2022年年度报告.txt']

可以发现结果是一个文件列表。

二、写循环实现词频统计

接着写循环统计每个文件中指定词出现的次数,具体代码如下:

import numpy as np 
import pandas as pd 

wd_list = ['董事会', '金融', '哈哈哈哈']   #要统计的词
txts_wd = [] 
for file in files:
    f = open(file, encoding='utf-8')      # 打开文件
    txt = ''
    for line in f:
        txt += line.strip()              #合并单行成一个txt
    txt_wd = file + ';'
    for i in wd_list:
        num = txt.count(i)
        txt_wd += i + '=' + str(num) + ';'
    txts_wd.append(txt_wd)
txts_wd

注:wd_list中填入你想统计的词,可加逗号无限扩展。

得到结果:

['000001_2002_20020418_2001年年度报告.txt;董事会=93;金融=90;哈哈哈哈=0;',
 '000001_2003_20030424_2002年年度报告.txt;董事会=89;金融=102;哈哈哈哈=0;',
 '000001_2004_20040415_2003年年度报告.txt;董事会=94;金融=110;哈哈哈哈=0;',
 '000001_2005_20050426_2004年年度报告.txt;董事会=167;金融=270;哈哈哈哈=0;',
 '000001_2006_20060401_2005年年度报告.txt;董事会=104;金融=329;哈哈哈哈=0;',
 '000001_2007_20070322_2006年年度报告.txt;董事会=96;金融=534;哈哈哈哈=0;',
 '000001_2008_20080320_2007年年度报告.txt;董事会=141;金融=695;哈哈哈哈=0;',
 '000001_2009_20090320_2008年年度报告.txt;董事会=97;金融=793;哈哈哈哈=0;',
 '000001_2010_20100312_2009年年度报告.txt;董事会=114;金融=836;哈哈哈哈=0;',
 '000001_2011_20110225_2010年年度报告.txt;董事会=151;金融=806;哈哈哈哈=0;',
 '000001_2012_20120309_2011年年度报告.txt;董事会=122;金融=921;哈哈哈哈=0;',
 '000001_2013_20130308_2012年年度报告.txt;董事会=95;金融=924;哈哈哈哈=0;',
 '000001_2014_20140307_2013年年度报告.txt;董事会=70;金融=616;哈哈哈哈=0;',
 '000001_2015_20150313_2014年年度报告.txt;董事会=101;金融=684;哈哈哈哈=0;',
 '000001_2016_20160310_2015年年度报告.txt;董事会=79;金融=667;哈哈哈哈=0;',
 '000001_2017_20170317_2016年年度报告.txt;董事会=66;金融=663;哈哈哈哈=0;',
 '000001_2018_20180315_2017年年度报告.txt;董事会=61;金融=726;哈哈哈哈=0;',
 '000001_2019_20190307_2018年年度报告.txt;董事会=63;金融=1106;哈哈哈哈=0;',
 '000001_2020_20200214_2019年年度报告.txt;董事会=71;金融=876;哈哈哈哈=0;',
 '000001_2021_20210202_2020年年度报告.txt;董事会=64;金融=1012;哈哈哈哈=0;',
 '000001_2022_20220310_2021年年度报告.txt;董事会=77;金融=1043;哈哈哈哈=0;',
 '000001_2023_20230309_2022年年度报告.txt;董事会=106;金融=1076;哈哈哈哈=0;']

可以发现每一行存储的都是文件名和指定词在文章中出现的次数。

三、把结果转成数据框

最后把结果转成数据框,具体代码如下:

#转成DataFrame
wd_date = pd.DataFrame(txts_wd)
wd_date.columns = ['col_name']
wd_date_f = wd_date['col_name'].str.split(';', expand=True)
columns = ['file_name'] + wd_list + ['0']
wd_date_f.columns = columns
wd_date_f = wd_date_f.drop(columns='0')
wd_date_f

得到结果:

观察第一行可以发现,在000001_2002_20020418_2001年年度报告.txt文章中董事会一词出现了93次,金融和哈哈哈哈分别出现了90次和0次。

至此,Python中实现词频统计已讲解完毕,如想了解更多Python数据统计方法

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述
若有侵权,请联系删除
  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值