#!/usr/bin/env python # coding: utf-8 # In[1]: import pandas as pd import numpy as np import re import os # In[30]: pattern = r"\A\w" repatter = re.compile(pattern) # In[18]: def wos_directry(folder_name): #ディレクトリを指定。ディレクトリ内に含まれているWoSからの出力データをリスト形式で返戻 a=os.listdir(folder_name) result=[] for i in a: print(folder_name+"/"+i) if i != ".DS_Store": result+=read_wos(folder_name+"/"+i) return result # In[16]: def read_wos(filename): #wosから出力したファイルを辞書形式に変換。戻り値は辞書を一要素としたリスト。 with open(filename,"r") as f: result=[] keyid="" value=[] df={} for i in f.readlines(): a=i.strip() b=i[0:2] if b=="PT" or b=="EF": #レコード間の区切りを指定 result.append(df) df={} if repatter.match(i):  if len(value)==1: df[keyid]=value[0] else: df[keyid]=value keyid=b value=[] value.append(a[3:]) else: value.append(a) del result[0] return result # In[19]: ryudai=wos_directry("ryu") # In[9]: ja2016df=pd.DataFrame(ja2016) # In[20]: len(ryudai) # In[10]: ja2016_uniqe=ja2016df.drop_duplicates("UT") # In[31]: ryudaidata=pd.DataFrame(ryudai) # In[43]: ryudaidata["NR1"]=ryudaidata["NR"].apply(int) # In[48]: ryudaidata["NR1"].plot.box plt.show() # In[52]: ryudaidata.groupby(["PU"]).AB.count().to_csv("publish_ryudai.csv") # In[12]: num=0 for i in niq: num+=int(i["NR"]) num # In[21]: citation=[] for i in ryudai: try: if type(i["CR"])==str: citation.append(i["CR"]) else: citation+=i["CR"] except: print(i) # In[22]: len(citation) # In[23]: citation[0] # In[24]: data=[] for i in citation: a=i.split(",") if len(a)>=3: data.append([a[1],a[2]]) # In[40]: data # In[25]: datatabel=pd.DataFrame(data) # In[28]: datatabel.groupby([0]).count() # In[35]: datatabel