Python简单词频统计以及格式合并实现
2017-05-02 20:41
627 查看
用到的模块: xlrd
运用到:字典dict列表list 读表格,
最后得到文件: txt
感言: 代码较简单, 实现的方法局限性较大. 希望大家一起指点交流, 谢谢.
代码如下:
( (相关注释和想法大都写在旁边的备注里了))
运用到:字典dict列表list 读表格,
最后得到文件: txt
代码如下:
( (相关注释和想法大都写在旁边的备注里了))
运用到:字典dict列表list 读表格,
最后得到文件: txt
感言: 代码较简单, 实现的方法局限性较大. 希望大家一起指点交流, 谢谢.
词频统计:
有关素材:
代码如下:
( (相关注释和想法大都写在旁边的备注里了))
import xlrd #定义读取指定列数据的函数, 并返回列表data def readxls_bycol(path,colnum): xl = xlrd.open_workbook(path) table = xl.sheets()[0] data =list(table.col_values(colnum)) print(data) return data #定义统计传入列表词频的函数. 并返回已经降序好的字典word_sort def count_words(data): word_list = [] word_dict = {} for i in data : word_list.extend(i.split('/')) # i.split('/')表示每个i元素按照/分割,放到单独一个小列表中, 这些i列表的集合用extend追加进word_list word_set=set(word_list) for x in word_set: #set 去重 num =word_list.count(x) #循环set里的词,在list里边数个数 word_dict[x] = num #x为dict的key, num 为字典的value word_sort = sorted(word_dict.items(), key=lambda d: d[1] , reverse = True) #排序字典,True为降序 #print(word_sort) #print括号省了会出错...(蠢 return word_sort #定义将字典写入指定txt文件的函数 def putdata_intotxt(word_sort,path): #传入已经排序好的字典 i=0 with op 9408 en(path,'w') as f : while i<len(word_sort): f.write(str(word_sort[i][0])+'\t\t'+ str(word_sort[i][1])+'\n') i+=1 def main(): path_xls ='材料1.xlsx' path_journal ='期刊词频.txt' path_keywrds ='关键词词频.txt' colnum_C=2 colnum_D=3 data_journal= readxls_bycol(path_xls,colnum_D) sort_jounal = count_words(data_journal) putdata_intotxt(sort_jounal,path_journal) #分别调用函数 写好txt data_keywrds= readxls_bycol(path_xls,colnum_C) sort_keywrds = count_words(data_keywrds) putdata_intotxt(sort_keywrds,path_keywrds) if __name__=='__main__': main() print('期刊词频&关键词词频都已经统计好啦,快去文件夹查看吧!XP')
格式合并
用到的模块: xlrd运用到:字典dict列表list 读表格,
最后得到文件: txt
代码如下:
( (相关注释和想法大都写在旁边的备注里了))
import xlrd #读取表格全部数据,返回列表data def readxls(path,colnum): xl = xlrd.open_workbook(path) table = xl.sheets()[0] data = [] for i in range(0,table.nrows): data.append(list(table.row_values(i))) return data #将传入的列表data(二维列表),作者相同的一行"合并"实质用另一个列表mrg来接,返回mrg def merge_data(data): i=0 mrg=[] if len(data)<0: print('没有获取到表格数据') for i in range(len(data)): if i==len(data)-1: mrg.append(data[i]) break elif data[i][0] == data[i+1][0]: data[i+1][2] = data[i][2] + ';'+ data[i+1][2] #将上头的作者copy到下一栏 else: mrg.append(data[i]) #下一行和此行ID不同就可以把此行存进mrg了 return mrg #将合并好的列表,传入, def putdata_intotxt(data,path): i=0 with open(path,'w') as f : while i<len(data): f.write(data[i][0]+'\t'+ data[i][1]+ '\t' + data[i][2] + '\n') i+=1 def main(): path_xls='材料2.xlsx' path_mrg='合并结果.txt' data_xls = readxls(path_xls,2) mrg = merge_data(data_xls) putdata_intotxt(mrg,path_mrg) if __name__ == '__main__': main() print('同篇目的作者合并已经做好啦!快打开txt看看吧XP')
相关文章推荐
- python代码简单实现一个词频统计
- python实现简单中文词频统计示例
- 从Apache的日志文件收集和提供统计数据(一个Python插件架构的简单实现)
- python实现简单爬虫以及正则表达式简述
- python脚本实现数据导出excel格式的简单方法(推荐)
- 使用Python+NLTK实现英文单词词频统计
- 使用Python+NLTK实现英文单词词频统计
- Python(2.7.x)实现简单的单词频数统计
- c语言实现词频统计的简单实例
- 用python实现简单EXCEL数据统计的实例
- python中json格式数据输出的简单实现方法
- 利用结巴分词的Python版本实现分词并统计词频
- 一个简单的程序,统计文本文档中的单词和汉字数,逆序排列(出现频率高的排在最前面)。python实现。
- Python 实现 Swagger yaml 格式 api 文档合并
- python简单实现hadoop map reduce统计功能
- python基于mysql实现的简单队列以及跨进程锁实例详解
- python中的 \r以及基于此实现简单的倒计时小程序
- 简单Python脚本实现数据导出Excel格式的尝试
- python简单词频统计
- Python字典使用--词频统计的GUI实现