2020年暑假数据处理(基于scitometrics_2010-2020的引文分析)

基于scitometrics_2010-2020的引文分析
暑假,导师给了我一个任务,让我处理一个关于引文分析的数据,开始的时候一头雾水,不知道从何做起,但是这也算是我第一次一个人处理一些数据,在这段时间里面用到了一些程序,现在进行一个汇总的整理。
首先,我拿到的是一个excel表格,对于这个表格,我首先先把它按照doi的列,分开成一个个小的excel(也就是说一篇文章一个excel)

import pandas as pd

iris=pd.read_excel('scitometrics_2010-2020.xlsx')
class_list=list(iris['doi'].drop_duplicates())
for i in class_list:
    iris1=iris[iris['doi']==i]
    iris1.to_excel('所有excel\%s.xlsx'%(i))

然后对每一个excel进行统计

import xlwt
import codecs
import xlrd #导入包
import re
import os
def fun(path):
    fileArray = []    
    for root, dirs, files in os.walk(path):
        for fn in files:
            eachpath = str(root+'/'+fn)
            fileArray.append(eachpath)
    return fileArray 

def readxls(path):
    xl=xlrd.open_workbook(path)
    sheet=xl.sheets()[0]  #第一个sheet
    data=sheet.col_values(5)
   # data=[] #建立一个列表存储独到的数据
    #data.append(list(sheet.col_values(5)))
    #print(data)
    return data

def fenci(data):
    word_listmg=[]
    word_list=[]
    for i in range (len(data)):
       # print(i)
        data[i]=data[i].replace(')','')  #因为有一些有括号,所以在这里就删掉
        data[i]=data[i].replace(',','')
        data[i]=data[i].replace(';','')
        data[i]=data[i].replace('.','')
        data[i]=data[i].replace('(','')
        data[i]=data[i].replace('al','')
        word_listmg=data[i].split(' ')
        word_list.extend(word_listmg)      #正好第零个就是标题,就从第一个开始算起。
   # print(word_list)
    return word_list

def  dingwei(list):
    b=[]
    for i in list:
        if re.search('【#',i):   #因为引文在数据文件里面已经标注出来了
            b.append(i)
    #print(b)
    subl=[]
    subl=[i for i in b if b.count(i)>1]     #存的是出现两次及以上的
    search=[]
    search=set(subl)
    #print(search)
    for i in search:
        elmt_index=[] #cunde      因为index不这样搞就只能出现第一次位置
        s_index = 0
        e_index = len(list)
        while(s_index < e_index):
            try:
                 temp = list.index(i,s_index,e_index)
                 elmt_index.append(temp)
                 s_index = temp + 1
            except ValueError:
                break
        print(i,elmt_index)



def main():
    path="所有excel"
    fileArray=fun(path)
    for raw_file_path in fileArray:
        data=readxls(raw_file_path)
        list=fenci(data)
        dingwei(list)
        print(raw_file_path+"已经完成")
        
if __name__ == '__main__':
    main()

最终得到结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值