1 对关键词的词频进行统计
下面展示一些 内联代码片
。
# encoding=utf-8
import openpyxl
wb = openpyxl.Workbook()
wb = openpyxl.load_workbook('copy1.xlsx') # Excel名
sh = wb['all'] # sheet名
'''
换一种写法
row=sh.max_row # 得到行数
'''
cons=[] # 将所有数据append成一个list
for cases in list(sh.rows)[1:9240]: # 行数,也可以通过代码来带入 即rowcase_D = cases[2].value # 关键词所在的列cons.append(case_D) result_new = []
res2 = []
for con in cons:fenci = con.strip().split('; ') # 假定关键词是以分号+空格分开的result_new.append(fenci)
new = sum(result_new,[])
res2.append(new)
#print(res2) # res2的形式是 [['aaa','bbb','abc']]import collections
dic = collections.Counter(res2[0])from openpyxl import Workbook
workbook = Workbook()
i=2 # 默认sheet
sh = workbook.active
sh.title = "count" #sheet名
for key in dic:sh.cell(row=1, column=1, value='关键词')sh.cell(row=1, column=2, value='频次') sh.cell(row=i, column=1, value=str(key))sh.cell(row=i, column=2, value=dic[key])i+=1
workbook.save(r'name.xlsx')
2 统计词共现的全部代码
注意,'一行作者.txt’这个文件必须是每篇文献的作者之间通过//连接成一行,合作作者通过分号+空格连接。
import pandas as pd
import numpy as np
from openpyxl import Workbookdef authors_stat(co_authors_list):au_dict = {} # 单个作者频次统计au_group = {} # 两两作者合作for authors in co_authors_list:authors = authors.split('; ') # 按照逗号分开每个作者authors_co = authors # 合作者同样构建一个样本for au in authors: # 统计单个作者出现的频次if au not in au_dict:au_dict[au] = 1else:au_dict[au] += 1# 统计合作的频次authors_co = authors_co[1:] # 去掉当前作者for au_c in authors_co:A, B = au, au_c # 不能用本来的名字,否则会改变au自身if A > B:A, B = B, A # 保持两个作者名字顺序一致co_au = A+'; '+B # 将两个作者合并起来,依然以逗号隔开if co_au not in au_group:au_group[co_au] = 1else:au_group[co_au] += 1return au_group, au_dictif __name__ == '__main__':f1 = open('一行作者.txt','r',encoding = 'utf-8')cons = f1.read()co_authors = consco_authors_list = co_authors.split('//')au_group, au_dict = authors_stat(co_authors_list)workbook = Workbook()i=2 # 默认sheetsh = workbook.activesh.title = "count"for (k,v) in au_group.items(): sh.cell(row=1, column=1, value='合作作者')sh.cell(row=1, column=2, value='频次') sh.cell(row=i, column=1, value=str(k))sh.cell(row=i, column=2, value=v)i+=1workbook.save(r'co_author.xlsx')
下次教画图。
接下来就是愉快的分析啦。
over is Over——Lee