You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ZSI_Reconnect_China/WOS/wos_processing.ipynb

3300 lines
2.1 MiB
Plaintext

2 years ago
{
"cells": [
{
"cell_type": "code",
"execution_count": 35,
2 years ago
"outputs": [],
"source": [
2 years ago
"import numpy as np\n",
2 years ago
"import pandas as pd\n",
"import os\n",
2 years ago
"import shutil\n",
"from flashgeotext.geotext import GeoText\n",
"import re\n",
"import spacy"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 20,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"I like salty fries and hamburgers. <-> Fast food tastes very good. 0.691649353055761\n",
"salty fries <-> hamburgers 0.6938489675521851\n"
]
}
],
"source": [
"import spacy\n",
"\n",
"nlp = spacy.load(\"en_core_web_md\") # make sure to use larger package!\n",
"doc1 = nlp(\"I like salty fries and hamburgers.\")\n",
"doc2 = nlp(\"Fast food tastes very good.\")\n",
"\n",
"# Similarity of two documents\n",
"print(doc1, \"<->\", doc2, doc1.similarity(doc2))\n",
"# Similarity of tokens and spans\n",
"french_fries = doc1[2:4]\n",
"burgers = doc1[5]\n",
"print(french_fries, \"<->\", burgers, french_fries.similarity(burgers))"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 21,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"I\n",
"salty fry\n",
"hamburger\n"
]
},
{
"data": {
"text/plain": "[None, None, None]"
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[print(i.lemma_) for i in doc1.noun_chunks]"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 22,
"outputs": [],
"source": [
"doc_test = nlp(\"On the inevitability of neural networks and other tasty topics of the 21st century\")"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
2 years ago
},
{
"cell_type": "code",
"execution_count": 23,
"outputs": [
{
"data": {
"text/plain": "['the inevitability',\n 'neural network',\n 'other tasty topic',\n 'the 21st century']"
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[i.lemma_ for i in doc_test.noun_chunks]"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 24,
"outputs": [
{
"data": {
"text/plain": "(300,)"
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"doc1.vector.shape"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 25,
"outputs": [
{
"data": {
"text/plain": "\"tokens = []\\nlemma = []\\npos = []\\n\\nfor doc in nlp.pipe(df['species'].astype('unicode').values, batch_size=50,\\n n_threads=3):\\n if doc.is_parsed:\\n tokens.append([n.text for n in doc])\\n lemma.append([n.lemma_ for n in doc])\\n pos.append([n.pos_ for n in doc])\\n else:\\n # We want to make sure that the lists of parsed results have the\\n # same number of entries of the original Dataframe, so add some blanks in case the parse fails\\n tokens.append(None)\\n lemma.append(None)\\n pos.append(None)\\n\\ndf['species_tokens'] = tokens\\ndf['species_lemma'] = lemma\\ndf['species_pos'] = pos\""
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#spacy pipe example\n",
"\"\"\"tokens = []\n",
"lemma = []\n",
"pos = []\n",
"\n",
"for doc in nlp.pipe(df['species'].astype('unicode').values, batch_size=50,\n",
" n_threads=3):\n",
" if doc.is_parsed:\n",
" tokens.append([n.text for n in doc])\n",
" lemma.append([n.lemma_ for n in doc])\n",
" pos.append([n.pos_ for n in doc])\n",
" else:\n",
" # We want to make sure that the lists of parsed results have the\n",
" # same number of entries of the original Dataframe, so add some blanks in case the parse fails\n",
" tokens.append(None)\n",
" lemma.append(None)\n",
" pos.append(None)\n",
"\n",
"df['species_tokens'] = tokens\n",
"df['species_lemma'] = lemma\n",
"df['species_pos'] = pos\"\"\""
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 26,
2 years ago
"metadata": {},
"outputs": [],
2 years ago
"source": [
"workdir_path=r\"wos_extract\"\n",
"outfile='wos_extract_complete.csv'\n",
2 years ago
"# with_header=True\n",
"# for root, dirs, files in os.walk(workdir_path):\n",
"# for filename in files:\n",
"# if filename.startswith(\"wosexport\"):\n",
"# path=os.path.join(root, filename)\n",
"# print(path)\n",
"# chunk = pd.read_excel(path)\n",
"# chunk.to_csv(outfile, mode=\"a\", index=False, header=with_header, sep=\"\\t\")\n",
"# with_header = False"
]
2 years ago
},
{
"cell_type": "code",
"execution_count": 27,
2 years ago
"metadata": {},
2 years ago
"outputs": [],
"source": [
2 years ago
"record_col=\"UT (Unique WOS ID)\""
]
2 years ago
},
{
"cell_type": "code",
"execution_count": 28,
2 years ago
"metadata": {},
2 years ago
"outputs": [],
"source": [
2 years ago
"wos = pd.read_csv(outfile, sep=\"\\t\",low_memory=False)\n",
"metrix = pd.read_excel(\"sm_journal_classification.xlsx\", sheet_name=\"Journal_Classification\")\n",
"\n",
"\n",
"metrix = metrix.set_index([c for c in metrix.columns if \"issn\" not in c]).stack().reset_index()\n",
"metrix = metrix.rename(columns={'level_6':\"issn_type\", 0:\"issn\"})\n",
"metrix[\"issn\"]=metrix[\"issn\"].str.replace(\"-\",\"\").str.lower().str.strip()\n",
"\n",
"wos[\"issn\"] = wos[\"ISSN\"].str.replace(\"-\",\"\").str.lower().str.strip()\n",
"wos[\"eissn\"] = wos[\"eISSN\"].str.replace(\"-\",\"\").str.lower().str.strip()\n",
"wos = wos.set_index([c for c in wos.columns if \"issn\" not in c]).stack().reset_index()\n",
"wos = wos.rename(columns={'level_72':\"issn_var\", 0:\"issn\"})\n",
"\n",
"wos_merge = wos.merge(metrix, on=\"issn\", how=\"left\")\n",
"wos = wos_merge.sort_values(by=\"issn_var\",ascending=False).drop_duplicates(subset=record_col)"
]
2 years ago
},
{
"cell_type": "code",
"execution_count": 29,
2 years ago
"metadata": {},
"outputs": [
{
"data": {
"text/plain": "0 Publication Type\n1 Authors\n2 Book Authors\n3 Book Editors\n4 Book Group Authors\n ... \n76 SubField_English\n77 2.00 SEQ\n78 Source_title\n79 srcid\n80 issn_type\nLength: 81, dtype: object"
},
"execution_count": 29,
2 years ago
"metadata": {},
"output_type": "execute_result"
}
2 years ago
],
2 years ago
"source": [
"pd.Series(wos.columns)"
]
2 years ago
},
{
"cell_type": "code",
"execution_count": 30,
2 years ago
"metadata": {},
2 years ago
"outputs": [
{
"data": {
2 years ago
"text/plain": "0 Salucci, Marco/S-8654-2016; Arrebola, Manuel/L...\n9714 Huang, Yu/AAY-5464-2020\n9697 Kakavand, Mohammad Reza Azadi/X-9556-2019; Fen...\n9699 Dong, Sheng/AAE-3619-2021; Soares, Carlos Gued...\n9701 Han, Guoqi/T-7365-2019; Nan, Yang/HKD-9687-202...\n ... \n3066 ; Liotta, Antonio/G-9532-2014\n5097 , 卢帅/AAK-2185-2020; Popp, József/AFN-1250-2022\n11369 NaN\n11368 Rossiter, D G/D-3842-2009\n11362 Jin, Shuanggen/B-8094-2008\nName: Researcher Ids, Length: 9889, dtype: object"
2 years ago
},
"execution_count": 30,
2 years ago
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
2 years ago
"wos[\"Researcher Ids\"]"
]
},
{
"cell_type": "code",
"execution_count": 31,
2 years ago
"metadata": {},
"outputs": [
{
"data": {
"text/plain": " Publication Type Authors \n16979 J Zhang, MS; Huang, J; Cao, Y; Xiong, CH; Mohamm... \\\n1880 J Zhang, MS; Huang, J; Cao, Y; Xiong, CH; Mohamm... \n\n Book Authors Book Editors Book Group Authors \n16979 NaN NaN NaN \\\n1880 NaN NaN NaN \n\n Author Full Names \n16979 Zhang, Mengshi; Huang, Jian; Cao, Yu; Xiong, C... \\\n1880 Zhang, Mengshi; Huang, Jian; Cao, Yu; Xiong, C... \n\n Book Author Full Names Group Authors \n16979 NaN NaN \\\n1880 NaN NaN \n\n Article Title \n16979 Echo State Network-Enhanced Super-Twisting Con... \\\n1880 Echo State Network-Enhanced Super-Twisting Con... \n\n Source Title ... Web of Science Record \n16979 IEEE-ASME TRANSACTIONS ON MECHATRONICS ... 0 \\\n1880 IEEE-ASME TRANSACTIONS ON MECHATRONICS ... 0 \n\n issn_var issn Domain_English Field_English \n16979 issn 10834435 Applied Sciences Engineering \\\n1880 issn 10834435 Applied Sciences Engineering \n\n SubField_English 2.00 SEQ \n16979 Industrial Engineering & Automation 27 \\\n1880 Industrial Engineering & Automation 27 \n\n Source_title srcid issn_type \n16979 IEEE/ASME Transactions on Mechatronics 19113.0 issn1 \n1880 IEEE/ASME Transactions on Mechatronics 19113.0 issn1 \n\n[2 rows x 81 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Publication Type</th>\n <th>Authors</th>\n <th>Book Authors</th>\n <th>Book Editors</th>\n <th>Book Group Authors</th>\n <th>Author Full Names</th>\n <th>Book Author Full Names</th>\n <th>Group Authors</th>\n <th>Article Title</th>\n <th>Source Title</th>\n <th>...</th>\n <th>Web of Science Record</th>\n <th>issn_var</th>\n <th>issn</th>\n <th>Domain_English</th>\n <th>Field_English</th>\n <th>SubField_English</th>\n <th>2.00 SEQ</th>\n <th>Source_title</th>\n <th>srcid</th>\n <th>issn_type</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>16979</th>\n <td>J</td>\n <td>Zhang, MS; Huang, J; Cao, Y; Xiong, CH; Mohamm...</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>Zhang, Mengshi; Huang, Jian; Cao, Yu; Xiong, C...</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>Echo State Network-Enhanced Super-Twisting Con...</td>\n <td>IEEE-ASME TRANSACTIONS ON MECHATRONICS</td>\n <td>...</td>\n <td>0</td>\n <td>issn</td>\n <td>10834435</td>\n <td>Applied Sciences</td>\n <td>Engineering</td>\n <td>Industrial Engineering &amp; Automation</td>\n <td>27</td>\n <td>IEEE/ASME Transactions on Mechatronics</td>\n <td>19113.0</td>\n <td>issn1</td>\n </tr>\n <tr>\n <th>1880</th>\n <td>J</td>\n <td>Zhang, MS; Huang, J; Cao, Y; Xiong, CH; Mohamm...</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>Zhang, Mengshi; Huang, Jian; Cao, Yu; Xiong, C...</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>Echo State Network-Enhanced Super-Twisting Con...</td>\n <td>IEEE-ASME TRANSACTIONS ON MECHATRONICS</td>\n <td>...</td>\n <td>0</td>\n <td>issn</td>\n <td>10834435</td>\n <td>Applied Sciences</td>\n <td>Engineering</td>\n <td>Industrial Engineering &amp; Automation</td>\n <td>27</td>\n <td>IEEE/ASME Transactions on Mechatronics</td>\n <td>19113.0</td>\n <td>issn1</td>\n </tr>\n </tbody>\n</table>\n<p>2 rows × 81 columns</p>\n</div>"
},
"execution_count": 31,
2 years ago
"metadata": {},
"output_type": "execute_result"
}
2 years ago
],
2 years ago
"source": [
"wos[(~wos[\"DOI\"].isna())&(wos[\"DOI\"].duplicated(False))]"
]
2 years ago
},
2 years ago
{
"cell_type": "code",
"execution_count": 32,
2 years ago
"outputs": [
{
"data": {
"text/plain": " UT (Unique WOS ID) Keywords Plus \n0 WOS:000852293800024 CONVOLUTIONAL NEURAL-NETWORK; DEEP LEARNING FR... \\\n9714 WOS:000540750000002 STATE-SPACE RECONSTRUCTION; SURFACE AIR-TEMPER... \n9697 WOS:000600708400002 COMPRESSIVE STRENGTH; MODELS; ADABOOST.RT; DUC... \n9699 WOS:000511965100005 STRUCTURAL RELIABILITY; FAILURE MODES \n9701 WOS:000663142500003 REFLECTED GPS SIGNALS; SOIL-MOISTURE; OCEAN; S... \n... ... ... \n3066 WOS:000528727500074 LOCAL SEARCH; ALGORITHM; VARIANCE; MODEL \n5097 WOS:000596139400001 INDUSTRY 4.0; MANAGEMENT; RISK; ANALYTICS; CHA... \n11369 WOS:000436774300069 NaN \n11368 WOS:000846290700001 PARTIAL LEAST-SQUARES; INFRARED-SPECTROSCOPY; ... \n11362 WOS:000480527800025 MICROWAVE DIELECTRIC BEHAVIOR; GPS SIGNALS; RE... \n\n Author Keywords \n0 Imaging; Three-dimensional displays; Electroma... \\\n9714 NaN \n9697 Plastic hinge length; RC columns; Machine lear... \n9699 system reliability; jacket platform; beta-unzi... \n9701 Cyclone GNSS (CYGNSS); Sea surface wind speed;... \n... ... \n3066 sea surface temperature; sea surface temperatu... \n5097 Big data finance; Big data in financial servic... \n11369 planetary gear; fault diagnosis; VMD; center f... \n11368 soil fertility class; reflectance spectroscopy... \n11362 global navigation satellite system (GNSS)-refl... \n\n Article Title \n0 Artificial Intelligence: New Frontiers in Real... \\\n9714 Detecting causality from time series in a mach... \n9697 Data-Driven Approach to Predict the Plastic Hi... \n9699 System Reliability Analysis of an Offshore Jac... \n9701 Analysis of coastal wind speed retrieval from ... \n... ... \n3066 Improved Particle Swarm Optimization for Sea S... \n5097 Current landscape and influence of big data on... \n11369 Planetary Gear Fault Diagnosis via Feature Ima... \n11368 How Well Can Reflectance Spectroscopy Allocate... \n11362 GNSS-R Soil Moisture Retrieval Based on a XGbo... \n\n Abstract \n0 In recent years, artificial intelligence (AI) ... \n9714 Detecting causality from observational data is... \n9697 Inelastic response of reinforced concrete colu... \n9699 This study investigates strategies for solving... \n9701 This paper demonstrates the capability and per... \n... ... \n3066 The Sea Surface Temperature (SST) is one of th... \n5097 Big data is one of the most recent business an... \n11369 Poor working environment leads to frequent fai... \n11368 Fertilization decisions depend on the measurem... \n11362 Global navigation satellite system (GNSS)-refl... \n\n[9889 rows x 5 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>UT (Unique WOS ID)</th>\n <th>Keywords Plus</th>\n <th>Author Keywords</th>\n <th>Article Title</th>\n <th>Abstract</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>WOS:000852293800024</td>\n <td>CONVOLUTIONAL NEURAL-NETWORK; DEEP LEARNING FR...</td>\n <td>Imaging; Three-dimensional displays; Electroma...</td>\n <td>Artificial Intelligence: New Frontiers in Real...</td>\n <td>In recent years, artificial intelligence (AI) ...</td>\n </tr>\n <tr>\n <th>9714</th>\n <td>WOS:000540750000002</td>\n <td>STATE-SPACE RECONSTRUCTION; SURFACE AIR-TEMPER...</td>\n <td>NaN</td>\n <td>Detecting causality from time series in a mach...</td>\n <td>Detecting causality from observational data is...</td>\n </tr>\n <tr>\n <th>9697</th>\n <td>WOS:000600708400002</td>\n <td>COMPRESSIVE STRENGTH; MODELS; ADABOOST.RT; DUC...</td>\n <td>Plastic hinge length; RC columns; Machine lear...</td>\n <td>Data-Driven Approach to Predict the Plastic Hi...</td>\n <td>Inelastic response of reinforced concrete colu...</td>\n </tr>\n <tr>\n <th>9699</th>\n <td>WOS:000511965100005</td>\n <td>STRUCTURAL RELIABILITY; FAILURE MODES</td>\n <td>system reliability; jacket platform; beta-unzi...</td>\n <td>System Reliability Analysis of an Offshore Jac...</td>\n <td>This study investigates strategies for solving...</td>\n </tr>\n <tr>\n <th>9701</th>\n <td>WOS:000663142500003</td>\n <td>REFLECTED GPS SIGNALS; SOIL-MOISTURE; OCEAN; S...</td>\n <td>Cyclone GNSS (CYGNSS); Sea surface wind speed;...</td>\n <td>Analysis of coastal wind speed retrieval from ...</td>\n <td>This paper demonstrates the capability and per...</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>3066</th>\n <td>WOS:000528727500074</td>\n <td>LOCAL SEARCH; ALGORITHM; VARIANCE; MODEL</td>\n <td>sea surface temperature; sea surface temperatu...</td>\n <td>Improved Particle Swarm Optimization for Sea S...</td>\n <td>The Sea Surface Temperature (SST) is one of th...</td>\n </tr>\n <tr>\n <th>5097</th>\n <td>WOS:000596139400001</td>\n <td>INDUSTRY 4.0; MANAGEMENT; RISK; ANALYTICS; CHA...</td>\n <td>Big data finance; Big data in financial servic...</td>\n <td>Current landscape and influence of big data on...</td>\n <td>Big data is one of the most recent business an...</td>\n </tr>\n <tr>\n <th>11369</th>\n <td>WOS:000436774300069</td>\n <td>NaN</td>\n <td>planetary gear; fault diagnosis; VMD; center f...</td>\n <td>Planetary Gear Fault Diagnosis via Feature Ima...</td>\n <td>Poor working environment leads to frequent fai...</td>\n </tr>\n <tr>\n <th>11368</th>\n <td>WOS:000846290700001</td>\n <td>PARTIAL LEAST-SQUARES; INFRARED-SPECTROSCOPY; ...</td>\n <td>soil fertility class; reflectance spectroscopy...</td>\n <td>How Well Can Reflectance Spectroscopy Allocate...</td>\n <td>Fertilization decisions depend on the measurem...</td>\n </tr>\n <tr>\n <th>11362</th>\n <td>WOS:000480527800025</td>\n <td>MICROWAVE DIELECTRIC BEHAVIOR; GPS SIGNALS; RE...</td>\n <td>global navigation satellite system (GNSS)-refl...</td>\n <td>GNSS-R Soil Moisture Retrieval Based on a XGbo...</td>\n <td>Global navigation satellite system (GNSS)-refl...</td>\n </tr>\n </tbody>\n</table>\n<p>9889 rows × 5 columns</p>\n</div>"
},
"execution_count": 32,
2 years ago
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wos[[record_col,\"Keywords Plus\",\"Author Keywords\",\"Article Title\",\"Abstract\"]]\n"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 68,
2 years ago
"outputs": [
{
"data": {
"text/plain": " UT (Unique WOS ID) keyword_all\n1 WOS:000297893800037 ADAPTIVE DYNAMIC SURFACE CONTROL\n2 WOS:000297893800037 NEURAL COMPENSATOR\n3 WOS:000297893800037 BUCK CONVERTER\n4 WOS:000297893800037 FINITE-TIME IDENTIFIER\n5 WOS:000301090100061 TEMPORAL CONJUNCTION\n.. ... ...\n99 WOS:000309409400280 SCIENTIFIC DATA CLOUD\n100 WOS:000309409400280 VIRTUAL DATASPACES\n101 WOS:000309409400280 SEMANTIC INTEGRATION\n102 WOS:000309409400280 ONTOLOGY\n103 WOS:000309409400280 PAY-AS-YOU-GO\n\n[100 rows x 2 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>UT (Unique WOS ID)</th>\n <th>keyword_all</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1</th>\n <td>WOS:000297893800037</td>\n <td>ADAPTIVE DYNAMIC SURFACE CONTROL</td>\n </tr>\n <tr>\n <th>2</th>\n <td>WOS:000297893800037</td>\n <td>NEURAL COMPENSATOR</td>\n </tr>\n <tr>\n <th>3</th>\n <td>WOS:000297893800037</td>\n <td>BUCK CONVERTER</td>\n </tr>\n <tr>\n <th>4</th>\n <td>WOS:000297893800037</td>\n <td>FINITE-TIME IDENTIFIER</td>\n </tr>\n <tr>\n <th>5</th>\n <td>WOS:000301090100061</td>\n <td>TEMPORAL CONJUNCTION</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>99</th>\n <td>WOS:000309409400280</td>\n <td>SCIENTIFIC DATA CLOUD</td>\n </tr>\n <tr>\n <th>100</th>\n <td>WOS:000309409400280</td>\n <td>VIRTUAL DATASPACES</td>\n </tr>\n <tr>\n <th>101</th>\n <td>WOS:000309409400280</td>\n <td>SEMANTIC INTEGRATION</td>\n </tr>\n <tr>\n <th>102</th>\n <td>WOS:000309409400280</td>\n <td>ONTOLOGY</td>\n </tr>\n <tr>\n <th>103</th>\n <td>WOS:000309409400280</td>\n <td>PAY-AS-YOU-GO</td>\n </tr>\n </tbody>\n</table>\n<p>100 rows × 2 columns</p>\n</div>"
2 years ago
},
"execution_count": 68,
2 years ago
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"kw_df = pd.DataFrame()\n",
"for c in [\"Keywords Plus\",\"Author Keywords\"]:\n",
" kwp = wos.groupby(record_col)[c].apply(lambda x: x.str.split(';')).explode().str.strip().str.upper()\n",
" kwp.name = 'keyword_all'\n",
2 years ago
" kw_df = pd.concat([kwp.reset_index(),kw_df],ignore_index=True)\n",
"kw_df = kw_df[~kw_df[\"keyword_all\"].isna()].copy().drop(columns=\"level_1\").drop_duplicates()\n",
"kw_df[\"keyword_all\"] = kw_df[\"keyword_all\"].apply(lambda x: re.sub(\"[\\(\\[].*?[\\)\\]]\", \"\", x))\n",
"kw_df.head(100)"
2 years ago
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 69,
"outputs": [
{
"data": {
"text/plain": " UT (Unique WOS ID) keyword_all\n0 WOS:000297893800037 ADAPTIVE DYNAMIC SURFACE CONTROL; NEURAL COMPE...\n1 WOS:000301090100061 TEMPORAL CONJUNCTION; CAUDATE NUCLEUS; PREFRON...\n2 WOS:000301155300013 AUTOMATIC INCIDENT DETECTION; DATA CLEANSING; ...\n3 WOS:000301973200015 TRACHEO-BRONCHIAL; LUNG; INNERVATION; ESOPHAGE...\n4 WOS:000302289400006 LINGUISTIC ANNOTATION; ANNOTATION TOOLS; INTER...",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>UT (Unique WOS ID)</th>\n <th>keyword_all</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>WOS:000297893800037</td>\n <td>ADAPTIVE DYNAMIC SURFACE CONTROL; NEURAL COMPE...</td>\n </tr>\n <tr>\n <th>1</th>\n <td>WOS:000301090100061</td>\n <td>TEMPORAL CONJUNCTION; CAUDATE NUCLEUS; PREFRON...</td>\n </tr>\n <tr>\n <th>2</th>\n <td>WOS:000301155300013</td>\n <td>AUTOMATIC INCIDENT DETECTION; DATA CLEANSING; ...</td>\n </tr>\n <tr>\n <th>3</th>\n <td>WOS:000301973200015</td>\n <td>TRACHEO-BRONCHIAL; LUNG; INNERVATION; ESOPHAGE...</td>\n </tr>\n <tr>\n <th>4</th>\n <td>WOS:000302289400006</td>\n <td>LINGUISTIC ANNOTATION; ANNOTATION TOOLS; INTER...</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wos_kwd_concat = kw_df.groupby(record_col, as_index=False).agg({'keyword_all': '; '.join})\n",
"wos_kwd_concat.head()"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 34,
2 years ago
"outputs": [
{
"data": {
"text/plain": "Downloading pytorch_model.bin: 0%| | 0.00/438M [00:00<?, ?B/s]",
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "0d9a3ff741694ac895a40780392c62fe"
2 years ago
}
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": "Downloading (…)nce_bert_config.json: 0%| | 0.00/53.0 [00:00<?, ?B/s]",
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "ed4c1401e1aa4bfc88bf3a97e178b5e2"
}
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": "Downloading (…)cial_tokens_map.json: 0%| | 0.00/239 [00:00<?, ?B/s]",
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "60046d76b6694b1dbf6f7f22ade78d7d"
}
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": "Downloading (…)a8e1d/tokenizer.json: 0%| | 0.00/466k [00:00<?, ?B/s]",
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "5529ba6b228440cd8d8388bf087e20c0"
}
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": "Downloading (…)okenizer_config.json: 0%| | 0.00/363 [00:00<?, ?B/s]",
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "88cfcf91709d479abe7d302419b5e0a6"
}
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": "Downloading (…)8e1d/train_script.py: 0%| | 0.00/13.1k [00:00<?, ?B/s]",
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "fcd1449c2b5f4447bb26f4c8a323e372"
}
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": "Downloading (…)b20bca8e1d/vocab.txt: 0%| | 0.00/232k [00:00<?, ?B/s]",
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "6762f031a4694013aa75cda0f75c648c"
}
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": "Downloading (…)bca8e1d/modules.json: 0%| | 0.00/349 [00:00<?, ?B/s]",
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "6feda2df252e428b83db52ea36d58ca1"
}
},
"metadata": {},
"output_type": "display_data"
2 years ago
}
],
"source": [
"from keybert import KeyBERT\n",
"\n",
"# Uses stopwords for english from NLTK, and all puntuation characters by\n",
"# default\n",
"kw_model = KeyBERT(model='all-mpnet-base-v2')\n",
"\n",
"# Extraction given the text.\n",
"# r.extract_keywords_from_text(<text to process>)\n",
"\n",
"# keywords = kw_model.extract_keywords(full_text,\n",
"#\n",
"# keyphrase_ngram_range=(1, 3),\n",
"#\n",
"# stop_words='english',\n",
"#\n",
"# highlight=False,\n",
"#\n",
"# top_n=10)\n",
"#\n",
"# keywords_list= list(dict(keywords).keys())"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 78,
2 years ago
"outputs": [
{
"data": {
"text/plain": "'ELECTROMAGNETIC IMAGING; INVERSE SCATTERING; SCATTERING ELECTROMAGNETIC'"
},
"execution_count": 78,
"metadata": {},
"output_type": "execute_result"
2 years ago
}
],
"source": [
"def kwd_extract(text):\n",
" keywords = kw_model.extract_keywords(text,\n",
"\n",
" keyphrase_ngram_range=(1, 2),\n",
"\n",
" stop_words='english',\n",
"\n",
" highlight=False,\n",
"\n",
" top_n=3)\n",
" return \"; \".join([i[0].upper() for i in keywords])\n",
"\n",
"kwd_extract(text=\"Artificial Intelligence: New Frontiers in Real-Time Inverse Scattering and Electromagnetic Imaging - In recent years, artificial intelligence (AI) techniques have been developed rapidly. With the ...\")"
2 years ago
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 61,
"outputs": [
{
"data": {
"text/plain": "'ELECTROMAGNETIC IMAGING; INVERSE SCATTERING; SCATTERING ELECTROMAGNETIC; SCATTERING; AI; ELECTROMAGNETIC; IMAGING; ARTIFICIAL INTELLIGENCE'"
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 86,
2 years ago
"outputs": [],
"source": [
"wos_nlp = wos[[record_col,\"Article Title\",\"Abstract\"]]\n",
"wos_nlp = wos_nlp.merge(wos_kwd_concat, on = record_col)\n",
"wos_nlp[\"Document\"] = wos_nlp[\"Article Title\"].str.cat(wos_nlp[[\"Abstract\",\"keyword_all\"]].fillna(\"\"), sep=' - ')\n",
"# wos_kwd_test[\"BERT_KWDS\"] = wos_kwd_test[\"Document\"].map(kwd_extract)\n",
"\n",
"vectors = list()\n",
"vector_norms = list()\n",
2 years ago
"\n",
"for doc in nlp.pipe(wos_nlp['Document'].astype('unicode').values, batch_size=100,\n",
" n_process=4):\n",
" vectors.append(doc.vector)\n",
" vector_norms.append(doc.vector_norm)\n",
"\n",
"wos_nlp['vector'] = vectors\n",
"wos_nlp['vector_norm'] = vector_norms"
2 years ago
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 84,
2 years ago
"outputs": [
{
"data": {
"text/plain": "<Axes: ylabel='Frequency'>"
2 years ago
},
"execution_count": 84,
2 years ago
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "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
},
"metadata": {},
"output_type": "display_data"
2 years ago
}
],
"source": [
"wos_nlp['vector_norm'].plot(kind=\"hist\")"
2 years ago
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 85,
2 years ago
"outputs": [
{
"data": {
"text/plain": " UT (Unique WOS ID) Article Title \n79 WOS:000852230800001 Deep Learning-Based Object Tracking in Satelli... \\\n87 WOS:000732189300001 Hyperspectral Anomaly Detection: A Survey \n248 WOS:000446451700003 New Frontiers in Spectral-Spatial Hyperspectra... \n276 WOS:000728108300001 IEEE ACCESS SPECIAL SECTION EDITORIAL: BIG DAT... \n365 WOS:000376531500004 Future Perspectives and Challenges of Fungal S... \n... ... ... \n8855 WOS:000541900700064 Statistical Machine Learning for Human Behavio... \n8869 WOS:000756384800001 Editorial: Artificial Intelligence in Positron... \n8891 WOS:000638348600001 Advancing Grid-Connected Renewable Generation ... \n8918 WOS:000859103100001 Editorial: Systems biology approach for the me... \n8925 WOS:000885247700001 Editorial: Investigation of brain functional c... \n\n Abstract keyword_all Document \n79 NaN FEATURE EXTRACTION; TRANSFORMERS; OBJECT TRACK... NaN \\\n87 NaN ANOMALY DETECTION; HYPERSPECTRAL IMAGING; PRIN... NaN \n248 NaN LOOPY BELIEF PROPAGATION; EXTINCTION PROFILES;... NaN \n276 NaN FEATURE-SELECTION; NEURAL-NETWORKS; STOCK-MARK... NaN \n365 NaN INTERNAL TRANSCRIBED SPACER; ASPERGILLUS-NIGER... NaN \n... ... ... ... \n8855 NaN ACTION RECOGNITION; EMOTION RECOGNITION; PRIVA... NaN \n8869 NaN ARTIFICIAL INTELLIGENCE; MOLECULAR IMAGING; PO... NaN \n8891 NaN RENEWABLE ENERGY SOURCES ; POWER QUALITY; VIRT... NaN \n8918 NaN CHRONIC LIVER DISEASE; OMICS; SYSTEMATIC BIOLO... NaN \n8925 NaN BRAIN; FUNCTIONAL CONNECTIVITY; EEG; ELECTROEN... NaN \n\n vector vector_norm \n79 [0.53393, -0.6493, -3.1156, -0.04664, -2.6227,... 60.533962 \n87 [0.53393, -0.6493, -3.1156, -0.04664, -2.6227,... 60.533962 \n248 [0.53393, -0.6493, -3.1156, -0.04664, -2.6227,... 60.533962 \n276 [0.53393, -0.6493, -3.1156, -0.04664, -2.6227,... 60.533962 \n365 [0.53393, -0.6493, -3.1156, -0.04664, -2.6227,... 60.533962 \n... ... ... \n8855 [0.53393, -0.6493, -3.1156, -0.04664, -2.6227,... 60.533962 \n8869 [0.53393, -0.6493, -3.1156, -0.04664, -2.6227,... 60.533962 \n8891 [0.53393, -0.6493, -3.1156, -0.04664, -2.6227,... 60.533962 \n8918 [0.53393, -0.6493, -3.1156, -0.04664, -2.6227,... 60.533962 \n8925 [0.53393, -0.6493, -3.1156, -0.04664, -2.6227,... 60.533962 \n\n[121 rows x 7 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>UT (Unique WOS ID)</th>\n <th>Article Title</th>\n <th>Abstract</th>\n <th>keyword_all</th>\n <th>Document</th>\n <th>vector</th>\n <th>vector_norm</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>79</th>\n <td>WOS:000852230800001</td>\n <td>Deep Learning-Based Object Tracking in Satelli...</td>\n <td>NaN</td>\n <td>FEATURE EXTRACTION; TRANSFORMERS; OBJECT TRACK...</td>\n <td>NaN</td>\n <td>[0.53393, -0.6493, -3.1156, -0.04664, -2.6227,...</td>\n <td>60.533962</td>\n </tr>\n <tr>\n <th>87</th>\n <td>WOS:000732189300001</td>\n <td>Hyperspectral Anomaly Detection: A Survey</td>\n <td>NaN</td>\n <td>ANOMALY DETECTION; HYPERSPECTRAL IMAGING; PRIN...</td>\n <td>NaN</td>\n <td>[0.53393, -0.6493, -3.1156, -0.04664, -2.6227,...</td>\n <td>60.533962</td>\n </tr>\n <tr>\n <th>248</th>\n <td>WOS:000446451700003</td>\n <td>New Frontiers in Spectral-Spatial Hyperspectra...</td>\n <td>NaN</td>\n <td>LOOPY BELIEF PROPAGATION; EXTINCTION PROFILES;...</td>\n <td>NaN</td>\n <td>[0.53393, -0.6493, -3.1156, -0.04664, -2.6227,...</td>\n <td>60.533962</td>\n </tr>\n <tr>\n <th>276</th>\n <td>WOS:000728108300001</td>\n <td>IEEE ACCESS SPECIAL SECTION EDITORIAL: BIG DAT...</td>\n <td>NaN</td>\n <td>FEATURE-SELECTION; NEURAL-NETWORKS; STOCK-MARK...</td>\n <td>NaN</td>\n <td>[0.53393, -0.6493, -3.1156, -0.04664, -2.6227,...</td>\n <td>60.533962</td>\n </tr>\n <tr>\n <th>365</th>\n <td>WOS:000376531500004</td>\n <td>Future Perspectives and Challenges of Fungal S...</td>\n <td>NaN</td>\n <td>INTERNAL TRANSCRIBED SPACER; ASPERGILLUS-NIGER...</td>\n <td>NaN</td>\n <td>[0.53393, -0.6493, -3.1156, -0.04664, -2.6227,...</td>\n <td>60.533962</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>8855</th>\n <td>WOS:000541900700064</td>\n <td>Statistical Machine Learning for Human Behavio...</td>\n <td>NaN</td>\n <td>ACTION RECOGNITION; EMOTION RECOGNITION; PRIVA...</td>\n <td>NaN</td>\n <td>[0.53393, -0.6493, -3.1156, -0.04664, -2.6227,...</td>\n <td>60.533962</td>\n </tr>\n <tr>\n <th>8869</th>\n <td>WOS:000756384800001</td>\n <td>Editorial: Artificial Intelligence in Positron...</td>\n <td>NaN</td>\n <td>ARTIFICIAL INTELLIGENCE; MOLECULAR IMAGING; PO...</td>\n <td>NaN</td>\n <td>[0.53393, -0.6493, -3.1156, -0.04664, -2.6227,...</td>\n <td>60.533962</td>\n </tr>\n <tr>\n <th>8891</th>\n <td>WOS:000638348600001</td>\n <td>Advancing Grid-Connected Renewable Generation ...</td>\n <td>NaN</td>\n <td>RENEWABLE ENERGY SOURCES ; POWER QUALITY; VIRT...</td>\n <td>NaN</td>\n <td>[0.53393, -0.6493, -3.1156, -0.04664, -2.6227,...</td>\n <td>60.533962</td>\n </tr>\n <tr>\n <th>8918</th>\n <td>WOS:000859103100001</td>\n <td>Editorial: Systems biology approach for the me...</td>\n <td>NaN</td>\n <td>CHRONIC LIVER DISEASE; OMICS; SYSTEMATIC BIOLO...</td>\n <td>NaN</td>\n <td>[0.53393, -0.6493, -3.1156, -0.04664, -2.6227,...</td>\n <td>60.533962</td>\n </tr>\n <tr>\n <th>8925</th>\n <td>WOS:000885247700001</td>\n <td>Editorial: Investigation of brain functional c...</td>\n <td>NaN</td>\n <td>BRAIN; FUNCTIONAL CONNECTIVITY; EEG; ELECTROEN...</td>\n <td>NaN</td>\n
2 years ago
},
"execution_count": 85,
2 years ago
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wos_nlp[wos_nlp['vector_norm']>50]"
2 years ago
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 77,
2 years ago
"outputs": [
{
"data": {
"text/plain": "array([[-1.8670139 , -1.6925758 , 0.48349068, ..., -2.2703056 ,\n -1.4200605 , 0.46284062],\n [-1.7312453 , -0.4499114 , -0.54250187, ..., -2.2334094 ,\n -1.3671577 , 0.7283594 ],\n [-2.3378334 , -0.424522 , -0.82274777, ..., -2.2994597 ,\n -1.5955478 , 0.26363412],\n ...,\n [-2.3435452 , -0.34531432, -1.1484123 , ..., -2.3003943 ,\n -1.8553756 , -0.31917948],\n [-2.8046715 , -1.7071993 , 0.55096555, ..., -2.709951 ,\n -0.621031 , 0.46265596],\n [-2.2533355 , -0.8899313 , 0.08667578, ..., -2.5975435 ,\n -1.0989579 , 1.2003326 ]], dtype=float32)"
2 years ago
},
"execution_count": 77,
2 years ago
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.array(wos_nlp[\"vector\"].to_list())"
],
2 years ago
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
2 years ago
{
"cell_type": "code",
2 years ago
"execution_count": 8,
"metadata": {},
2 years ago
"outputs": [],
"source": [
2 years ago
"geotext = GeoText()\n",
"\n",
"def extract_location(input_text, key='countries'):\n",
" anomalies = {\"Malta\":\"Malta\",\n",
" \"Mongolia\":\"Mongolia\",\n",
" \"Quatar\":\"Qatar\",\n",
" \"Qatar\":\"Qatar\",\n",
" \"Ethiop\":\"Ethiopia\",\n",
" \"Nigeria\":\"Nigeria\",\n",
" \"BELAR\":\"Belarus\",\n",
" \"Venezuela\":\"Venezuela\",\n",
" \"Cyprus\":\"Cyprus\",\n",
" \"Ecuador\":\"Ecuador\",\n",
" \"U Arab\":\"United Arab Emirates\",\n",
" \"Syria\":\"Syria\",\n",
" \"Uganda\":\"Uganda\",\n",
" \"Yemen\":\"Yemen\",\n",
" \"Mali\":\"Mali\",\n",
" \"Senegal\":\"Senegal\",\n",
" \"Vatican\":\"Vatican\",\n",
" \"Uruguay\":\"Uruguay\",\n",
" \"Panama\":\"Panama\",\n",
" \"Fiji\":\"Fiji\",\n",
" \"Faroe\":\"Faroe Islands\",\n",
" \"Macedonia\":\"Macedonia\",\n",
" 'Mozambique':'Mozambique',\n",
" \"Kuwait\":\"Kuwait\",\n",
" \"Libya\":\"Libya\",\n",
" \"Turkiy\":\"Turkey\",\n",
" \"Liberia\":\"Liberia\",\n",
" \"Namibia\":\"Namibia\",\n",
" \"Ivoire\":\"Ivory Coast\",\n",
" \"Guatemala\":\"Gutemala\",\n",
" \"Paraguay\":\"Paraguay\",\n",
" \"Honduras\":\"Honduras\",\n",
" \"Nicaragua\":\"Nicaragua\",\n",
" \"Trinidad\":\"Trinidad & Tobago\",\n",
" \"Liechtenstein\":\"Liechtenstein\",\n",
" \"Greenland\":\"Denmark\"}\n",
"\n",
" extracted = geotext.extract(input_text=input_text)\n",
" found = extracted[key].keys()\n",
" if len(sorted(found))>0:\n",
" return sorted(found)[0]\n",
" elif key=='countries':\n",
" for i in ['Scotland','Wales','England']:\n",
" if i in input_text:\n",
" return 'United Kingdom'\n",
" for j in anomalies.keys():\n",
" if j in input_text:\n",
" return anomalies.get(j)\n",
" else:\n",
" return None\n",
"\n",
"with open('../eu_members.txt',\"r\") as f:\n",
" eu_countries=f.readline().split(\",\")\n",
" eu_countries=[i.strip() for i in eu_countries]\n",
"\n",
"def country_type(country):\n",
" if country in eu_countries:\n",
" return \"EU\"\n",
" elif country==\"China\":\n",
" return \"China\"\n",
" else:\n",
" return \"Other\"\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"locations = wos.groupby(record_col)[\"Addresses\"].apply(lambda x: x.str.split('[')).explode().reset_index().drop(columns=\"level_1\")\n",
"locations = locations[locations[\"Addresses\"]!=\"\"].copy()\n",
"locations[\"Address\"] = locations[\"Addresses\"].apply(lambda x:x.split(\"]\")[-1])\n",
"locations[\"Authors_of_address\"] = locations[\"Addresses\"].apply(lambda x:x.split(\"]\")[0])\n",
"locations[\"Country\"]=locations['Address'].apply(lambda x: extract_location(input_text=x, key='countries'))\n",
"locations[\"City\"]=locations['Address'].apply(lambda x: extract_location(input_text=x, key='cities'))\n",
"locations[\"Country_Type\"] = locations[\"Country\"].apply(lambda x: country_type(x))"
]
2 years ago
},
{
"cell_type": "code",
2 years ago
"execution_count": 10,
"metadata": {},
2 years ago
"outputs": [
{
2 years ago
"data": {
"text/plain": " UT (Unique WOS ID) Address \n1 WOS:000209536100003 BGI HK Ltd, GigaSci, Tai Po, Hong Kong, Peopl... \\\n2 WOS:000209536100003 Nat Hist Museum, London SW7 5BD, England; \n3 WOS:000209536100003 Pensoft Publishers, Sofia, Bulgaria; \n4 WOS:000209536100003 Nat Hist Museum, Natl Museum, Sofia, Bulgaria; \n5 WOS:000209536100003 Bulgarian Acad Sci, Inst Biodivers & Ecosyst ... \n\n Country City Country_Type Institution \n1 China Hong Kong China BGI HK Ltd \n2 United Kingdom London Other Nat Hist Museum \n3 Bulgaria Sofia EU Pensoft Publishers \n4 Bulgaria Sofia EU Nat Hist Museum \n5 Bulgaria Rees EU Bulgarian Acad Sci ",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>UT (Unique WOS ID)</th>\n <th>Address</th>\n <th>Country</th>\n <th>City</th>\n <th>Country_Type</th>\n <th>Institution</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1</th>\n <td>WOS:000209536100003</td>\n <td>BGI HK Ltd, GigaSci, Tai Po, Hong Kong, Peopl...</td>\n <td>China</td>\n <td>Hong Kong</td>\n <td>China</td>\n <td>BGI HK Ltd</td>\n </tr>\n <tr>\n <th>2</th>\n <td>WOS:000209536100003</td>\n <td>Nat Hist Museum, London SW7 5BD, England;</td>\n <td>United Kingdom</td>\n <td>London</td>\n <td>Other</td>\n <td>Nat Hist Museum</td>\n </tr>\n <tr>\n <th>3</th>\n <td>WOS:000209536100003</td>\n <td>Pensoft Publishers, Sofia, Bulgaria;</td>\n <td>Bulgaria</td>\n <td>Sofia</td>\n <td>EU</td>\n <td>Pensoft Publishers</td>\n </tr>\n <tr>\n <th>4</th>\n <td>WOS:000209536100003</td>\n <td>Nat Hist Museum, Natl Museum, Sofia, Bulgaria;</td>\n <td>Bulgaria</td>\n <td>Sofia</td>\n <td>EU</td>\n <td>Nat Hist Museum</td>\n </tr>\n <tr>\n <th>5</th>\n <td>WOS:000209536100003</td>\n <td>Bulgarian Acad Sci, Inst Biodivers &amp; Ecosyst ...</td>\n <td>Bulgaria</td>\n <td>Rees</td>\n <td>EU</td>\n <td>Bulgarian Acad Sci</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
2 years ago
}
],
"source": [
2 years ago
"univ_locations = locations[[record_col,\"Address\",\"Country\",\"City\",\"Country_Type\"]].copy()\n",
"univ_locations[\"Institution\"] = univ_locations[\"Address\"].apply(lambda x: x.split(\",\")[0])\n",
"univ_locations.head()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": "Country\nChina 21063\nUnited States 5913\nGermany 4179\nItaly 3195\nFrance 2767\n ... \nFaroe Islands 1\nHonduras 1\nVatican 1\nMacedonia 1\nJamaica 1\nName: count, Length: 137, dtype: int64"
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
2 years ago
],
2 years ago
"source": [
"locations[\"Country\"].value_counts()"
]
2 years ago
},
{
"cell_type": "code",
2 years ago
"execution_count": 12,
"metadata": {},
2 years ago
"outputs": [
{
"data": {
2 years ago
"text/plain": "Country_Type\nEU 21228\nChina 21063\nOther 20404\nName: count, dtype: int64"
2 years ago
},
2 years ago
"execution_count": 12,
2 years ago
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
2 years ago
"locations[\"Country_Type\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": " UT (Unique WOS ID) Country Country_Type Author_name \n0 WOS:000209536100003 Bulgaria EU Stoev, Pavel \\\n1 WOS:000209536100003 Bulgaria EU Penev, Lyubomir \n2 WOS:000209536100003 Bulgaria EU Stoev, Pavel \n3 WOS:000209536100003 Bulgaria EU Penev, Lyubomir \n4 WOS:000209536100003 China China Edmunds, Scott C. \n... ... ... ... ... \n173441 WOS:000947693400001 China China Peng, Sihua \n173442 WOS:000947693400001 China China Shen, Zhehan \n173443 WOS:000947693400001 China China Shen, Zhehan \n173444 WOS:000947693400001 China China Liu, Taigang \n173445 WOS:000947693400001 Spain EU Jiang, Linhua \n\n author_str_id \n0 stoevpavel \n1 penevlyubomir \n2 stoevpavel \n3 penevlyubomir \n4 edmundsscottc \n... ... \n173441 pengsihua \n173442 shenzhehan \n173443 shenzhehan \n173444 liutaigang \n173445 jianglinhua \n\n[173446 rows x 5 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>UT (Unique WOS ID)</th>\n <th>Country</th>\n <th>Country_Type</th>\n <th>Author_name</th>\n <th>author_str_id</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>WOS:000209536100003</td>\n <td>Bulgaria</td>\n <td>EU</td>\n <td>Stoev, Pavel</td>\n <td>stoevpavel</td>\n </tr>\n <tr>\n <th>1</th>\n <td>WOS:000209536100003</td>\n <td>Bulgaria</td>\n <td>EU</td>\n <td>Penev, Lyubomir</td>\n <td>penevlyubomir</td>\n </tr>\n <tr>\n <th>2</th>\n <td>WOS:000209536100003</td>\n <td>Bulgaria</td>\n <td>EU</td>\n <td>Stoev, Pavel</td>\n <td>stoevpavel</td>\n </tr>\n <tr>\n <th>3</th>\n <td>WOS:000209536100003</td>\n <td>Bulgaria</td>\n <td>EU</td>\n <td>Penev, Lyubomir</td>\n <td>penevlyubomir</td>\n </tr>\n <tr>\n <th>4</th>\n <td>WOS:000209536100003</td>\n <td>China</td>\n <td>China</td>\n <td>Edmunds, Scott C.</td>\n <td>edmundsscottc</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>173441</th>\n <td>WOS:000947693400001</td>\n <td>China</td>\n <td>China</td>\n <td>Peng, Sihua</td>\n <td>pengsihua</td>\n </tr>\n <tr>\n <th>173442</th>\n <td>WOS:000947693400001</td>\n <td>China</td>\n <td>China</td>\n <td>Shen, Zhehan</td>\n <td>shenzhehan</td>\n </tr>\n <tr>\n <th>173443</th>\n <td>WOS:000947693400001</td>\n <td>China</td>\n <td>China</td>\n <td>Shen, Zhehan</td>\n <td>shenzhehan</td>\n </tr>\n <tr>\n <th>173444</th>\n <td>WOS:000947693400001</td>\n <td>China</td>\n <td>China</td>\n <td>Liu, Taigang</td>\n <td>liutaigang</td>\n </tr>\n <tr>\n <th>173445</th>\n <td>WOS:000947693400001</td>\n <td>Spain</td>\n <td>EU</td>\n <td>Jiang, Linhua</td>\n <td>jianglinhua</td>\n </tr>\n </tbody>\n</table>\n<p>173446 rows × 5 columns</p>\n</div>"
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
2 years ago
],
2 years ago
"source": [
"author_locations = locations.groupby([record_col,\"Country\",\"Country_Type\"])[\"Authors_of_address\"].apply(lambda x: x.str.split(';')).explode().reset_index().drop(columns=\"level_3\")\n",
"author_locations[\"Author_name\"] = author_locations[\"Authors_of_address\"].str.strip()\n",
"author_locations = author_locations.drop(columns=\"Authors_of_address\")\n",
"author_locations[\"author_str_id\"] = author_locations[\"Author_name\"].apply(lambda x:''.join(filter(str.isalnum, x.lower())))\n",
"author_locations"
]
2 years ago
},
{
"cell_type": "code",
2 years ago
"execution_count": 14,
"metadata": {},
2 years ago
"outputs": [
{
2 years ago
"data": {
"text/plain": "8925"
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
2 years ago
}
],
"source": [
2 years ago
"author_primary_region = author_locations.sort_values(by=\"Country_Type\").drop_duplicates(subset=[record_col,\"author_str_id\"])\n",
"# author_primary_region\n",
"\n",
"china=author_primary_region[author_primary_region[\"Country_Type\"]==\"China\"][record_col].unique()\n",
"eu=author_primary_region[author_primary_region[\"Country_Type\"]==\"EU\"][record_col].unique()\n",
"\n",
"len(wos[((wos[record_col].isin(china))\n",
" &\n",
" (wos[record_col].isin(eu)))])"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": "9889"
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
2 years ago
],
2 years ago
"source": [
"len(wos)"
]
2 years ago
},
{
"cell_type": "code",
2 years ago
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"affiliations = wos.groupby(record_col)[\"Affiliations\"].apply(lambda x: x.str.split(';')).explode().reset_index().drop(columns=\"level_1\")\n",
"# affiliations[affiliations[\"Affiliations\"].str.lower().str.contains(\"chinese academy\", na=False, regex=True)][\"Affiliations\"].value_counts()\n",
"affiliations[\"Affiliations\"] = affiliations[\"Affiliations\"].str.strip().str.upper().fillna(\"UNKNOWN\")\n",
"affiliations = affiliations.drop_duplicates()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
2 years ago
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2 years ago
"76485 72581\n"
2 years ago
]
2 years ago
}
],
"source": [
"aff_ = wos.groupby(record_col)[\"Affiliations\"].apply(lambda x: x.str.split(';')).explode().reset_index().drop(columns=\"level_1\")\n",
"loc_ = wos.groupby(record_col)[\"Addresses\"].apply(lambda x: x.str.split('[')).explode().reset_index().drop(columns=\"level_1\")\n",
"print(len(aff_),len(loc_))"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
2 years ago
{
2 years ago
"data": {
"text/plain": "[['IDAHO'],\n ['ICREA'],\n ['CEA'],\n ['AGROPARISTECH'],\n ['LENOVO'],\n ['RIKEN'],\n ['MICROSOFT'],\n ['GLAXOSMITHKLINE'],\n ['UNICANCER'],\n ['INRIA'],\n ['CIBERESP'],\n ['SINOPEC'],\n ['PHILIPS'],\n ['CIRAD'],\n ['VITO'],\n ['IMEC'],\n ['ILLUMINA'],\n ['EURECOM'],\n ['BAIDU'],\n ['CIBEREHD'],\n ['UNKNOWN'],\n ['BAYCREST'],\n ['NOVARTIS'],\n ['ITER'],\n ['PELIN'],\n ['INRAE'],\n ['ASTRAZENECA'],\n ['ERICSSON'],\n ['IDIBAPS'],\n ['CGIAR'],\n ['UNILEVER'],\n ['GENENTECH'],\n ['TENCENT'],\n ['NICTA'],\n ['QUALCOMM'],\n ['INESC-ID'],\n ['CIBERES'],\n ['ALCATEL-LUCENT'],\n ['TEAGASC'],\n ['ABB'],\n ['HEWLETT-PACKARD'],\n ['AT&T'],\n ['RIGSHOSPITALET'],\n ['FORTISS'],\n ['AMAZON.COM'],\n ['BASF'],\n ['BOSCH'],\n ['CIBERSAM'],\n ['EURATOM'],\n ['UNINETTUNO'],\n ['E-ON'],\n ['DELPHI'],\n ['BIOGEN'],\n ['SAMSUNG'],\n ['INTERDIGITAL'],\n ['SYNGENTA'],\n ['CIBERONC'],\n ['IRTA'],\n ['MICA'],\n ['MEDTRONIC'],\n ['IFREMER'],\n ['DELTARES'],\n ['PROFIL'],\n ['SANOFI-AVENTIS'],\n ['REGENERON'],\n ['YUTONG'],\n ['CIBERBBN'],\n ['KAKAO'],\n ['DNV'],\n ['SCHLUMBERGER'],\n ['ITALFARMACO'],\n ['CYBERNETICA'],\n ['ZTE'],\n ['NAVER'],\n ['VOLVO'],\n ['CHANGHONG'],\n ['CINTECX'],\n ['VINUNIVERSITY'],\n ['SERVIER'],\n ['CIBERCV'],\n ['IMELDAZIEKENHUIS'],\n ['DIAKONESSENHUIS'],\n ['ADVENTHEALTH'],\n ['ALLIANCE'],\n ['AUDENCIA'],\n ['SINTEF'],\n ['SAP'],\n ['ELEKTA'],\n ['ELSEVIER'],\n ['CIBEROBN'],\n ['PFIZER'],\n ['ABBVIE'],\n ['NAVARRABIOMED'],\n ['BYD'],\n ['INSPUR'],\n ['CIBERNED'],\n ['SHANDONG', 'UNIVERSITY'],\n ['HEBEI', 'UNIVERSITY'],\n ['BOGAZICI', 'UNIVERSITY'],\n ['DOGUS', 'UNIVERSITY'],\n ['GAZIANTEP', 'UNIVERSITY'],\n ['ANKARA', 'UNIVERSITY'],\n ['DUMLUPINAR', 'UNIVERSITY'],\n ['GAZI', 'UNIVERSITY'],\n ['BOSTON', 'UNIVERSITY'],\n ['BRANDEIS', 'UNIVERSITY'],\n ['CARLETON', 'UNIVERSITY'],\n ['NANJING', 'UNIVERSITY'],\n ['COLUMBIA', 'UNIVERSITY'],\n ['HELMHOLTZ', 'ASSOCIATION'],\n ['DUKE', 'UNIVERSITY'],\n ['HAMPTON', 'UNIVERSITY'],\n ['HARVARD', 'UNIVERSITY'],\n ['KOBE', 'UNIVERSITY'],\n ['KYOTO', 'UNIVERSITY'],\n ['LANCASTER', 'UNIVERSITY'],\n ['SORBONNE', 'UNIVERSITE'],\n ['LUND', 'UNIVERSITY'],\n ['AIX-MARSEILLE', 'UNIVERSITE'],\n ['MCGILL', 'UNIVERSITY'],\n ['NAGOYA', 'UNIVERSITY'],\n ['OKAYAMA', 'UNIVERSITY'],\n ['OSAKA', 'UNIVERSITY'],\n ['RITSUMEIKAN', 'UNIVERSITY'],\n ['SHINSHU', 'UNIVERSITY'],\n ['UNIVERSITAT', 'SIEGEN'],\n ['STANFORD', 'UNIVERSITY'],\n ['STOCKHOLM', 'UNIVERSITY'],\n ['TUFTS', 'UNIVERSITY'],\n ['UPPSALA', 'UNIVERSITY'],\n ['WASEDA', 'UNIVERSITY'],\n ['YALE', 'UNIVERSITY'],\n ['HIROSHIMA', 'UNIVERSITY'],\n ['MANHATTAN', 'COLLEGE'],\n ['JAGIELLONIAN', 'UNIVERSITY'],\n ['FUDAN', 'UNIVERSITY'],\n ['YANTAI', 'UNIVERSITY'],\n ['UNIVERSITY', 'OSNABRUCK'],\n ['PEKING', 'UNIVERSITY'],\n ['TSINGHUA', 'UNIVERSITY'],\n ['SYRACUSE', 'UNIVERSITY'],\n ['ZHEJIANG', 'UNIVERSITY'],\n ['MCMASTER', 'UNIVERSITY'],\n ['ETH', 'ZURICH'],\n ['TUSCIA', 'UNIVERSITY'],\n ['LISHUI', 'UNIVERSITY'],\n ['LEGEND', 'HOLDINGS'],\n ['WUHAN', 'UNIVERSITY'],\n ['GHENT', 'UNIVERSITY'],\n ['SHANGHAI', 'UNIVERSITY'],\n ['JILIN', 'UNIVERSITY'],\n ['ULSTER', 'UNIVERSITY'],\n ['JIANGNAN', 'UNIVERSITY'],\n ['KU', 'LEUVEN'],\n ['HOCHSCHULE', 'AALEN'],\n ['SHAOYANG', 'UNIVERSITY'],\n ['HUNAN', 'UNIVERSITY'],\n ['KYUSHU', 'UNIVERSITY'],\n ['TONGJI', 'UNIVERSITY'],\n ['TAMPERE', 'UNIVERSITY'],\n ['AALTO', 'UNIVERSITY'],\n ['OBUDA', 'UNIVERSITY'],\n ['PANJAB', 'UNIVERSITY'],\n ['KOREA', 'UNIVERSITY'],\n ['VILNIUS', 'UNIVERSITY'],\n ['CHULALONGKORN', 'UNIVERSITY'],\n ['CUKUROVA', 'UNIVERSITY'],\n ['BRUNEL', 'UNIVERSITY'],\n ['BAYLOR', 'UNIVERSITY'],\n ['BROWN', 'UNIVERSITY'],\n ['CORNELL', 'UNIVERSITY'],\n ['FAIRFIELD', 'UNIVERSITY'],\n ['NORTHEASTERN', 'UNIVERSITY'],\n ['NORTHWESTERN', 'UNIVERSITY'],\n ['PRINCETON', 'UNIVERSITY'],\n ['PURDUE', 'UNIVERSITY'],\n ['RICE', 'UNIVERSITY'],\n ['ROCKEFELLER', 'UNIVERSITY'],\n ['VANDERBILT', 'UNIVERSITY'],\n ['CAIRO', 'UNIVERSITY'],\n ['FAYOUM', 'UNIVERSITY'],\n ['HELWAN', 'UNIVERSITY'],\n ['SHIRAZ', 'UNIVERSITY'],\n ['GAZIOSMANPASA', 'UNIVERSITY'],\n ['ADIYAMAN', 'UNIVERSITY'],\n ['MERSIN', '
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"unique_inst = sorted([i.split(\" \") for i in list(affiliations[\"Affiliations\"].unique())], key=len)\n",
"# unique_inst = [[''.join(filter(str.isalnum, i)) for i in i_list] for i_list in unique_inst]\n",
"unique_inst = [[i.strip(\",\").strip(\"(\").strip(\")\") for i in i_list] for i_list in unique_inst]\n",
"unique_inst"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"def institution_chunk_norris(text):\n",
" for i in unique_inst:\n",
" text_split=text.split(\" \")\n",
" text_split=[i.strip(\",\").strip(\"(\").strip(\")\") for i in text_split]\n",
" overlap = all(token in text_split for token in i)\n",
" if overlap:\n",
" return (\" \".join(i))\n",
" return \"ERROR\""
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"affiliations[\"Affiliations_merged\"] = affiliations[\"Affiliations\"].apply(lambda x: institution_chunk_norris(x))"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": "Affiliations\nCHINESE ACADEMY OF SCIENCES 1188\nUDICE-FRENCH RESEARCH UNIVERSITIES 647\nCENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQUE (CNRS) 640\nHELMHOLTZ ASSOCIATION 427\nUNIVERSITY OF CHINESE ACADEMY OF SCIENCES, CAS 411\n ... \nIMT NORD EUROPE 1\nSANGMYUNG UNIVERSITY 1\nINDIANA UNIVERSITY PURDUE UNIVERSITY FORT WAYNE 1\nJAHANGIRNAGAR UNIVERSITY 1\nSAINT JAMES'S UNIVERSITY HOSPITAL 1\nName: count, Length: 4884, dtype: int64"
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
2 years ago
}
],
"source": [
2 years ago
"affiliations[\"Affiliations\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": "Affiliations_merged\nCHINESE ACADEMY OF SCIENCES 1725\nNANJING UNIVERSITY 737\nSHANGHAI UNIVERSITY 667\nUDICE-FRENCH RESEARCH UNIVERSITIES 647\nCENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQUE CNRS 640\n ... \nULVAC INC. 1\nNATIONAL METROLOGY INSTITUTE OF JAPAN 1\nSHEFFIELD HALLAM UNIVERSITY 1\nGLOBAL INSTITUTE FOR WATER SECURITY 1\nSAINT JAMES'S UNIVERSITY HOSPITAL 1\nName: count, Length: 4241, dtype: int64"
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
2 years ago
],
2 years ago
"source": [
"affiliations[\"Affiliations_merged\"].value_counts()"
]
2 years ago
},
{
"cell_type": "code",
2 years ago
"execution_count": 23,
"metadata": {},
2 years ago
"outputs": [
{
2 years ago
"data": {
"text/plain": "Empty DataFrame\nColumns: [UT (Unique WOS ID), Affiliations, Affiliations_merged]\nIndex: []",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>UT (Unique WOS ID)</th>\n <th>Affiliations</th>\n <th>Affiliations_merged</th>\n </tr>\n </thead>\n <tbody>\n </tbody>\n</table>\n</div>"
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"affiliations[affiliations[\"Affiliations_merged\"]==\"ERROR\"]"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"from nltk.metrics import edit_distance\n",
"from nltk.metrics import edit_distance_align\n",
"#results = df.apply(lambda x: edit_distance(x[\"column1\"], x[\"column2\"]), axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"affiliations = affiliations.merge(univ_locations, on=record_col)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
2 years ago
{
"data": {
2 years ago
"text/plain": " UT (Unique WOS ID) Affiliations \n0 WOS:000209536100003 NATURAL HISTORY MUSEUM LONDON \\\n1 WOS:000209536100003 NATURAL HISTORY MUSEUM LONDON \n2 WOS:000209536100003 NATURAL HISTORY MUSEUM LONDON \n3 WOS:000209536100003 NATURAL HISTORY MUSEUM LONDON \n4 WOS:000209536100003 NATURAL HISTORY MUSEUM LONDON \n\n Affiliations_merged \n0 NATURAL HISTORY MUSEUM LONDON \\\n1 NATURAL HISTORY MUSEUM LONDON \n2 NATURAL HISTORY MUSEUM LONDON \n3 NATURAL HISTORY MUSEUM LONDON \n4 NATURAL HISTORY MUSEUM LONDON \n\n Address Country \n0 BGI HK Ltd, GigaSci, Tai Po, Hong Kong, Peopl... China \\\n1 Nat Hist Museum, London SW7 5BD, England; United Kingdom \n2 Pensoft Publishers, Sofia, Bulgaria; Bulgaria \n3 Nat Hist Museum, Natl Museum, Sofia, Bulgaria; Bulgaria \n4 Bulgarian Acad Sci, Inst Biodivers & Ecosyst ... Bulgaria \n\n City Country_Type Institution levehnstein \n0 Hong Kong China BGI HK LTD 24 \n1 London Other NAT HIST MUSEUM 14 \n2 Sofia EU PENSOFT PUBLISHERS 25 \n3 Sofia EU NAT HIST MUSEUM 14 \n4 Rees EU BULGARIAN ACAD SCI 25 ",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>UT (Unique WOS ID)</th>\n <th>Affiliations</th>\n <th>Affiliations_merged</th>\n <th>Address</th>\n <th>Country</th>\n <th>City</th>\n <th>Country_Type</th>\n <th>Institution</th>\n <th>levehnstein</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>WOS:000209536100003</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>BGI HK Ltd, GigaSci, Tai Po, Hong Kong, Peopl...</td>\n <td>China</td>\n <td>Hong Kong</td>\n <td>China</td>\n <td>BGI HK LTD</td>\n <td>24</td>\n </tr>\n <tr>\n <th>1</th>\n <td>WOS:000209536100003</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>Nat Hist Museum, London SW7 5BD, England;</td>\n <td>United Kingdom</td>\n <td>London</td>\n <td>Other</td>\n <td>NAT HIST MUSEUM</td>\n <td>14</td>\n </tr>\n <tr>\n <th>2</th>\n <td>WOS:000209536100003</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>Pensoft Publishers, Sofia, Bulgaria;</td>\n <td>Bulgaria</td>\n <td>Sofia</td>\n <td>EU</td>\n <td>PENSOFT PUBLISHERS</td>\n <td>25</td>\n </tr>\n <tr>\n <th>3</th>\n <td>WOS:000209536100003</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>Nat Hist Museum, Natl Museum, Sofia, Bulgaria;</td>\n <td>Bulgaria</td>\n <td>Sofia</td>\n <td>EU</td>\n <td>NAT HIST MUSEUM</td>\n <td>14</td>\n </tr>\n <tr>\n <th>4</th>\n <td>WOS:000209536100003</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>Bulgarian Acad Sci, Inst Biodivers &amp; Ecosyst ...</td>\n <td>Bulgaria</td>\n <td>Rees</td>\n <td>EU</td>\n <td>BULGARIAN ACAD SCI</td>\n <td>25</td>\n </tr>\n </tbody>\n</table>\n</div>"
2 years ago
},
2 years ago
"execution_count": 26,
2 years ago
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
2 years ago
"affiliations[\"Affiliations\"] = affiliations[\"Affiliations\"].str.upper().str.strip()\n",
"affiliations[\"Institution\"] = affiliations[\"Institution\"].str.upper().str.strip()\n",
"\n",
"affiliations[\"levehnstein\"] = affiliations.apply(\n",
" lambda x: edit_distance(x[\"Affiliations\"], x[\"Institution\"]), axis=1)\n",
"affiliations.head()"
]
},
{
"cell_type": "code",
"execution_count": 71,
"outputs": [],
"source": [
"def tok_overlap(lon_str, short_str):\n",
" l,s = lon_str.split(\" \"), short_str.split(\" \")\n",
" # create a pairwise distance matrix using NumPy\n",
" distance_matrix = np.fromfunction(np.vectorize(lambda i, j: edit_distance(l[int(i)], s[int(j)])), shape=(len(l), len(s)))\n",
" distance_frame = pd.DataFrame(data=distance_matrix, columns=s, index=l)\n",
"\n",
" return min(distance_frame.min().sum(),distance_frame.T.min().sum())\n",
"\n",
"# lon=(\"UNIVERSITY\",\"AMSTERDAM\",\"TECHNICAL\", \"LOCAL\")\n",
"# sho=(\"UNIV\",\"AMSTER\",\"TECH\",\"LOCAL\")\n",
"# tok_overlap(lon_str=\" \".join(lon),short_str=\" \".join(sho)).min().sum()"
2 years ago
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
2 years ago
"execution_count": 62,
2 years ago
"outputs": [
{
2 years ago
"data": {
"text/plain": "(4, 3)"
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
2 years ago
}
],
"source": [
2 years ago
"tok_overlap(lon_str=\" \".join(l),short_str=\" \".join(s)).shape"
2 years ago
],
"metadata": {
"collapsed": false
}
2 years ago
},
{
"cell_type": "code",
2 years ago
"execution_count": 72,
"outputs": [
{
"data": {
"text/plain": " UT (Unique WOS ID) Affiliations \n0 WOS:000209536100003 NATURAL HISTORY MUSEUM LONDON \\\n1 WOS:000209536100003 NATURAL HISTORY MUSEUM LONDON \n2 WOS:000209536100003 NATURAL HISTORY MUSEUM LONDON \n3 WOS:000209536100003 NATURAL HISTORY MUSEUM LONDON \n4 WOS:000209536100003 NATURAL HISTORY MUSEUM LONDON \n\n Affiliations_merged \n0 NATURAL HISTORY MUSEUM LONDON \\\n1 NATURAL HISTORY MUSEUM LONDON \n2 NATURAL HISTORY MUSEUM LONDON \n3 NATURAL HISTORY MUSEUM LONDON \n4 NATURAL HISTORY MUSEUM LONDON \n\n Address Country \n0 BGI HK Ltd, GigaSci, Tai Po, Hong Kong, Peopl... China \\\n1 Nat Hist Museum, London SW7 5BD, England; United Kingdom \n2 Pensoft Publishers, Sofia, Bulgaria; Bulgaria \n3 Nat Hist Museum, Natl Museum, Sofia, Bulgaria; Bulgaria \n4 Bulgarian Acad Sci, Inst Biodivers & Ecosyst ... Bulgaria \n\n City Country_Type Institution levehnstein token_overlap \n0 Hong Kong China BGI HK LTD 24 16 \n1 London Other NAT HIST MUSEUM 14 7 \n2 Sofia EU PENSOFT PUBLISHERS 25 12 \n3 Sofia EU NAT HIST MUSEUM 14 7 \n4 Rees EU BULGARIAN ACAD SCI 25 17 ",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>UT (Unique WOS ID)</th>\n <th>Affiliations</th>\n <th>Affiliations_merged</th>\n <th>Address</th>\n <th>Country</th>\n <th>City</th>\n <th>Country_Type</th>\n <th>Institution</th>\n <th>levehnstein</th>\n <th>token_overlap</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>WOS:000209536100003</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>BGI HK Ltd, GigaSci, Tai Po, Hong Kong, Peopl...</td>\n <td>China</td>\n <td>Hong Kong</td>\n <td>China</td>\n <td>BGI HK LTD</td>\n <td>24</td>\n <td>16</td>\n </tr>\n <tr>\n <th>1</th>\n <td>WOS:000209536100003</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>Nat Hist Museum, London SW7 5BD, England;</td>\n <td>United Kingdom</td>\n <td>London</td>\n <td>Other</td>\n <td>NAT HIST MUSEUM</td>\n <td>14</td>\n <td>7</td>\n </tr>\n <tr>\n <th>2</th>\n <td>WOS:000209536100003</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>Pensoft Publishers, Sofia, Bulgaria;</td>\n <td>Bulgaria</td>\n <td>Sofia</td>\n <td>EU</td>\n <td>PENSOFT PUBLISHERS</td>\n <td>25</td>\n <td>12</td>\n </tr>\n <tr>\n <th>3</th>\n <td>WOS:000209536100003</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>Nat Hist Museum, Natl Museum, Sofia, Bulgaria;</td>\n <td>Bulgaria</td>\n <td>Sofia</td>\n <td>EU</td>\n <td>NAT HIST MUSEUM</td>\n <td>14</td>\n <td>7</td>\n </tr>\n <tr>\n <th>4</th>\n <td>WOS:000209536100003</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>Bulgarian Acad Sci, Inst Biodivers &amp; Ecosyst ...</td>\n <td>Bulgaria</td>\n <td>Rees</td>\n <td>EU</td>\n <td>BULGARIAN ACAD SCI</td>\n <td>25</td>\n <td>17</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
],
2 years ago
"source": [
"affiliations[\"token_overlap\"] = affiliations.apply(\n",
" lambda x: tok_overlap(x[\"Affiliations\"], x[\"Institution\"]), axis=1)\n",
"affiliations.head()"
],
"metadata": {
2 years ago
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 73,
"outputs": [
{
"data": {
"text/plain": " UT (Unique WOS ID) Affiliations \n2430154 WOS:000947693400001 UNIVERSITAT POLITECNICA DE VALENCIA \\\n2430132 WOS:000947693400001 SHANGHAITECH UNIVERSITY \n2430139 WOS:000947693400001 SHANGHAI OCEAN UNIVERSITY \n2430146 WOS:000947693400001 SHANGHAI JIAO TONG UNIVERSITY \n2430125 WOS:000947693400001 HUZHOU UNIVERSITY \n... ... ... \n43 WOS:000301090100061 BIRKBECK UNIVERSITY LONDON \n13 WOS:000297893800037 UNIVERSIDAD POLITECNICA DE MADRID \n11 WOS:000297893800037 BEIJING INSTITUTE OF TECHNOLOGY \n1 WOS:000209536100003 NATURAL HISTORY MUSEUM LONDON \n9 WOS:000209536100003 BULGARIAN ACADEMY OF SCIENCES \n\n Affiliations_merged \n2430154 UNIVERSITAT POLITECNICA DE VALENCIA \\\n2430132 SHANGHAITECH UNIVERSITY \n2430139 SHANGHAI UNIVERSITY \n2430146 SHANGHAI UNIVERSITY \n2430125 HUZHOU UNIVERSITY \n... ... \n43 BIRKBECK UNIVERSITY LONDON \n13 UNIVERSIDAD POLITECNICA DE MADRID \n11 BEIJING INSTITUTE OF TECHNOLOGY \n1 NATURAL HISTORY MUSEUM LONDON \n9 BULGARIAN ACADEMY OF SCIENCES \n\n Address Country \n2430154 Univ Politecn Valencia, European Inst Innovat... Spain \\\n2430132 ShanghaiTech Univ, Shanghai Inst Adv Immunoch... China \n2430139 Shanghai Ocean Univ, Coll Fisheries & Life Sc... China \n2430146 Shanghai Jiao Tong Univ, Ruijin Hosp, Sch Med... China \n2430125 Huzhou Univ, Sch Informat Engn, Huzhou 313000... China \n... ... ... \n43 Birkbeck Coll London, Sch Psychol, London, En... United Kingdom \n13 UPM, Ctr Elect Ind, Madrid 28006, Spain Spain \n11 UPM, Ctr Elect Ind, Madrid 28006, Spain Spain \n1 Nat Hist Museum, London SW7 5BD, England; United Kingdom \n9 Bulgarian Acad Sci, Inst Biodivers & Ecosyst ... Bulgaria \n\n City Country_Type Institution levehnstein \n2430154 Valencia EU UNIV POLITECN VALENCIA 13 \\\n2430132 Shanghai China SHANGHAITECH UNIV 6 \n2430139 Shanghai China SHANGHAI OCEAN UNIV 6 \n2430146 Meda China SHANGHAI JIAO TONG UNIV 6 \n2430125 Huzhou China HUZHOU UNIV 6 \n... ... ... ... ... \n43 London Other BIRKBECK COLL LONDON 10 \n13 Madrid EU UPM 30 \n11 Madrid EU UPM 30 \n1 London Other NAT HIST MUSEUM 14 \n9 Rees EU BULGARIAN ACAD SCI 11 \n\n token_overlap \n2430154 7 \n2430132 6 \n2430139 5 \n2430146 4 \n2430125 5 \n... ... \n43 5 \n13 3 \n11 3 \n1 7 \n9 6 \n\n[63590 rows x 10 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>UT (Unique WOS ID)</th>\n <th>Affiliations</th>\n <th>Affiliations_merged</th>\n <th>Address</th>\n <th>Country</th>\n <th>City</th>\n <th>Country_Type</th>\n <th>Institution</th>\n <th>levehnstein</th>\n <th>token_overlap</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>2430154</th>\n <td>WOS:000947693400001</td>\n <td>UNIVERSITAT POLITECNICA DE VALENCIA</td>\n <td>UNIVERSITAT POLITECNICA DE VALENCIA</td>\n <td>Univ Politecn Valencia, European Inst Innovat...</td>\n <td>Spain</td>\n <td>Valencia</td>\n <td>EU</td>\n <td>UNIV POLITECN VALENCIA</td>\n <td>13</td>\n <td>7</td>\n </tr>\n <tr>\n <th>2430132</th>\n <td>WOS:000947693400001</td>\n <td>SHANGHAITECH UNIVERSITY</td>\n <td>SHANGHAITECH UNIVERSITY</td>\n <td>ShanghaiTech Univ, Shanghai Inst Adv Immunoch...</td>\n <td>China</td>\n <td>Shanghai</td>\n <td>China</td>\n <td>SHANGHAITECH UNIV</td>\n <td>6</td>\n <td>6</td>\n </tr>\n <tr>\n <th>2430139</th>\n <td>WOS:000947693400001</td>\n <td>SHANGHAI OCEAN UNIVERSITY</td>\n <td>SHANGHAI UNIVERSITY</td>\n <td>Shanghai Ocean Univ, Coll Fisheries &amp; Life Sc...</td>\n <td>China</td>\n <td>Shanghai</td>\n <td>China</td>\n <td>SHANGHAI OCEAN UNIV</td>\n <td>6</td>\n <td>5</td>\n </tr>\n <tr>\n <th>2430146</th>\n <td>WOS:000947693400001</td>\n <td>SHANGHAI JIAO TONG UNIVERSITY</td>\n <td>SHANGHAI UNIVERSITY</td>\n <td>Shanghai Jiao Tong Univ, Ruijin Hosp, Sch Med...</td>\n <td>China</td>\n <td>Meda</td>\n <td>China</td>\n <td>SHANGHAI JIAO TONG UNIV</td>\n <td>6</td>\n <td>4</td>\n </tr>\n <tr>\n <th>2430125</th>\n <td>WOS:000947693400001</td>\n <td>HUZHOU UNIVERSITY</td>\n <td>HUZHOU UNIVERSITY</td>\n <td>Huzhou Univ, Sch Informat Engn, Huzhou 313000...</td>\n <td>China</td>\n <td>Huzhou</td>\n <td>China</td>\n <td>HUZHOU UNIV</td>\n <td>6</td>\n <td>5</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>43</th>\n <td>WOS:000301090100061</td>\n <td>BIRKBECK UNIVERSITY LONDON</td>\n <td>BIRKBECK UNIVERSITY LONDON</td>\n <td>Birkbeck Coll London, Sch Psychol, London, En...</td>\n <td>United Kingdom</td>\n <td>London</td>\n <td>Other</td>\n <td>BIRKBECK COLL LONDON</td>\n <td>10</td>\n <td>5</td>\n </tr>\n <tr>\n <th>13</th>\n <td>WOS:000297893800037</td>\n <td>UNIVERSIDAD POLITECNICA DE MADRID</td>\n <td>UNIVERSIDAD POLITECNICA DE MADRID</td>\n <td>UPM, Ctr Elect Ind, Madrid 28006, Spain</td>\n <td>Spain</td>\n <td>Madrid</td>\n <td>EU</td>\n <td>UPM</td>\n <td>30</td>\n <td>3</td>\n </tr>\n <tr>\n <th>11</th>\n <td>WOS:000297893800037</td>\n <td>BEIJING INSTITUTE OF TECHNOLOGY</td>\n <td>BEIJING INSTITUTE OF TECHNOLOGY</td>\n <td>UPM, Ctr Elect Ind, Madrid 28006, Spain</td>\n <td>Spain</td>\n <td>Madrid</td>\n <td>EU</td>\n <td>UPM</td>\n <td>30</td>\n <td>3</td>\n </tr>\n <tr>\n <th>1</th>\n <td>WOS:000209536100003</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>NATURAL HISTORY MUSEUM LONDON</td>\n <td>Nat Hist Museum, London SW7 5BD, England;</td>\n <td>United Kingdom<
},
"execution_count": 73,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"affiliations.sort_values(by=[record_col,\"Affiliations\",\"token_overlap\"], ascending=[False,False,True]).drop_duplicates(subset=[record_col,\"Affiliations\"])"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 80,
"outputs": [
{
"data": {
"text/plain": "Affiliations\n(ADVENTHEALTH) CENTRAL FLORIDA DIVISION CHARITE\n1 DECEMBRIE 1918 UNIVERSITY ALBA IULIA 1 DECEMBRIE 1918 UNIV ALBA IULIA\nA*STAR - BIOINFORMATICS INSTITUTE (BII) ASTAR\nA*STAR - GENOME INSTITUTE OF SINGAPORE (GIS) UNIV COPENHAGEN\nA*STAR - INSTITUTE FOR INFOCOMM RESEARCH (I2R) ASTAR\n ... \nZTE ZTE CORP\nZUNYI MEDICAL UNIVERSITY [JINAN UNIV, NCI, SANOFI]\nZURICH CENTER INTEGRATIVE HUMAN PHYSIOLOGY (ZIHP) UNIV ZURICH\nZURICH UNIVERSITY OF APPLIED SCIENCES [IRD, SAS, UCL]\nZUSE INSTITUTE BERLIN ZUSE INST BERLIN\nName: Institution, Length: 4884, dtype: object"
},
"execution_count": 80,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"helper = affiliations.sort_values(by=[\"Affiliations\",\"token_overlap\"], ascending=[False,True]).drop_duplicates(subset=[record_col,\"Affiliations\"])\n",
"afh = helper[[\"Affiliations\",\"Institution\",\"Country\"]]\n",
"afh.groupby(\"Affiliations\")[\"Institution\"].agg(pd.Series.mode)"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 82,
"outputs": [
{
"data": {
"text/plain": "Affiliations\n(ADVENTHEALTH) CENTRAL FLORIDA DIVISION Germany\n1 DECEMBRIE 1918 UNIVERSITY ALBA IULIA Romania\nA*STAR - BIOINFORMATICS INSTITUTE (BII) Singapore\nA*STAR - GENOME INSTITUTE OF SINGAPORE (GIS) Denmark\nA*STAR - INSTITUTE FOR INFOCOMM RESEARCH (I2R) Singapore\n ... \nZTE China\nZUNYI MEDICAL UNIVERSITY United States\nZURICH CENTER INTEGRATIVE HUMAN PHYSIOLOGY (ZIHP) Switzerland\nZURICH UNIVERSITY OF APPLIED SCIENCES [France, United Kingdom, United States]\nZUSE INSTITUTE BERLIN Germany\nName: Country, Length: 4884, dtype: object"
},
"execution_count": 82,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"afh.groupby(\"Affiliations\")[\"Country\"].agg(pd.Series.mode)"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 92,
"outputs": [],
"source": [
"helper1 = affiliations.sort_values(by=[\"Affiliations\",\"token_overlap\"], ascending=[False,True]).drop_duplicates(subset=[record_col,\"Affiliations\"])\n",
"afh1 = helper1[[\"Affiliations\",\"Institution\",\"City\",\"Country\",\"Country_Type\"]]\n",
"mode1_i = afh1.groupby(\"Affiliations\")[\"Institution\"].apply(pd.Series.mode).reset_index()\n",
"mode1_c = afh1.groupby(\"Affiliations\")[\"Country\"].apply(pd.Series.mode).reset_index()\n",
"mode1_city = afh1.groupby(\"Affiliations\")[\"City\"].apply(pd.Series.mode).reset_index()\n",
"mode1_type = afh1.groupby(\"Affiliations\")[\"Country_Type\"].apply(pd.Series.mode).reset_index()\n",
"\n",
"helper2 = affiliations.sort_values(by=[\"Affiliations\",\"levehnstein\"], ascending=[False,True]).drop_duplicates(subset=[record_col,\"Affiliations\"])\n",
"afh2 = helper2[[\"Affiliations\",\"Institution\",\"City\",\"Country\",\"Country_Type\"]]\n",
"mode2_i = afh2.groupby(\"Affiliations\")[\"Institution\"].apply(pd.Series.mode).reset_index()\n",
"mode2_c = afh2.groupby(\"Affiliations\")[\"Country\"].apply(pd.Series.mode).reset_index()\n",
"mode2_city = afh2.groupby(\"Affiliations\")[\"City\"].apply(pd.Series.mode).reset_index()\n",
"mode2_type = afh2.groupby(\"Affiliations\")[\"Country_Type\"].apply(pd.Series.mode).reset_index()\n",
"\n",
"mode_i = pd.concat([mode1_i,mode2_i],ignore_index=True)[[\"Affiliations\",\"Institution\"]].groupby(\"Affiliations\")[\"Institution\"].agg(\n",
" lambda x: pd.Series.mode(x)[0])\n",
"mode_c = pd.concat([mode1_c,mode2_c],ignore_index=True)[[\"Affiliations\",\"Country\"]].groupby(\"Affiliations\")[\"Country\"].agg(\n",
" lambda x: pd.Series.mode(x)[0])\n",
"mode_city = pd.concat([mode1_city,mode2_city],ignore_index=True)[[\"Affiliations\",\"City\"]].groupby(\"Affiliations\")[\"City\"].agg(\n",
" lambda x: pd.Series.mode(x)[0])\n",
"mode_type = pd.concat([mode1_type,mode2_type],ignore_index=True)[[\"Affiliations\",\"Country_Type\"]].groupby(\"Affiliations\")[\"Country_Type\"].agg(\n",
" lambda x: pd.Series.mode(x)[0])"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 99,
"outputs": [
{
"data": {
"text/plain": " Affiliations \n0 (ADVENTHEALTH) CENTRAL FLORIDA DIVISION \\\n1 1 DECEMBRIE 1918 UNIVERSITY ALBA IULIA \n2 A*STAR - BIOINFORMATICS INSTITUTE (BII) \n3 A*STAR - GENOME INSTITUTE OF SINGAPORE (GIS) \n4 A*STAR - INSTITUTE FOR INFOCOMM RESEARCH (I2R) \n... ... \n4795 ZTE \n4796 ZUNYI MEDICAL UNIVERSITY \n4797 ZURICH CENTER INTEGRATIVE HUMAN PHYSIOLOGY (ZIHP) \n4798 ZURICH UNIVERSITY OF APPLIED SCIENCES \n4799 ZUSE INSTITUTE BERLIN \n\n Institution (short name from address) Country_candidate City_candidate \n0 CHARITE Canada Berlin \\\n1 1 DECEMBRIE 1918 UNIV ALBA IULIA Romania Alba Iulia \n2 ASTAR China Jinan \n3 AGCY SCI TECHNOL & RES Denmark Copenhagen \n4 ASTAR Singapore Rees \n... ... ... ... \n4795 ZTE CORP China Shenzhen \n4796 JINAN UNIV China Bethesda \n4797 NATL CTR EXCELLENCE YOUTH MENTAL HLTH Switzerland Zürich \n4798 IRD France Cary \n4799 ZUSE INST BERLIN Germany Berlin \n\n Country_type_candidate \n0 EU \n1 EU \n2 China \n3 EU \n4 Other \n... ... \n4795 China \n4796 China \n4797 Other \n4798 Other \n4799 EU \n\n[4800 rows x 5 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Affiliations</th>\n <th>Institution (short name from address)</th>\n <th>Country_candidate</th>\n <th>City_candidate</th>\n <th>Country_type_candidate</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>(ADVENTHEALTH) CENTRAL FLORIDA DIVISION</td>\n <td>CHARITE</td>\n <td>Canada</td>\n <td>Berlin</td>\n <td>EU</td>\n </tr>\n <tr>\n <th>1</th>\n <td>1 DECEMBRIE 1918 UNIVERSITY ALBA IULIA</td>\n <td>1 DECEMBRIE 1918 UNIV ALBA IULIA</td>\n <td>Romania</td>\n <td>Alba Iulia</td>\n <td>EU</td>\n </tr>\n <tr>\n <th>2</th>\n <td>A*STAR - BIOINFORMATICS INSTITUTE (BII)</td>\n <td>ASTAR</td>\n <td>China</td>\n <td>Jinan</td>\n <td>China</td>\n </tr>\n <tr>\n <th>3</th>\n <td>A*STAR - GENOME INSTITUTE OF SINGAPORE (GIS)</td>\n <td>AGCY SCI TECHNOL &amp; RES</td>\n <td>Denmark</td>\n <td>Copenhagen</td>\n <td>EU</td>\n </tr>\n <tr>\n <th>4</th>\n <td>A*STAR - INSTITUTE FOR INFOCOMM RESEARCH (I2R)</td>\n <td>ASTAR</td>\n <td>Singapore</td>\n <td>Rees</td>\n <td>Other</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>4795</th>\n <td>ZTE</td>\n <td>ZTE CORP</td>\n <td>China</td>\n <td>Shenzhen</td>\n <td>China</td>\n </tr>\n <tr>\n <th>4796</th>\n <td>ZUNYI MEDICAL UNIVERSITY</td>\n <td>JINAN UNIV</td>\n <td>China</td>\n <td>Bethesda</td>\n <td>China</td>\n </tr>\n <tr>\n <th>4797</th>\n <td>ZURICH CENTER INTEGRATIVE HUMAN PHYSIOLOGY (ZIHP)</td>\n <td>NATL CTR EXCELLENCE YOUTH MENTAL HLTH</td>\n <td>Switzerland</td>\n <td>Zürich</td>\n <td>Other</td>\n </tr>\n <tr>\n <th>4798</th>\n <td>ZURICH UNIVERSITY OF APPLIED SCIENCES</td>\n <td>IRD</td>\n <td>France</td>\n <td>Cary</td>\n <td>Other</td>\n </tr>\n <tr>\n <th>4799</th>\n <td>ZUSE INSTITUTE BERLIN</td>\n <td>ZUSE INST BERLIN</td>\n <td>Germany</td>\n <td>Berlin</td>\n <td>EU</td>\n </tr>\n </tbody>\n</table>\n<p>4800 rows × 5 columns</p>\n</div>"
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
2 years ago
}
2 years ago
],
"source": [
"from functools import reduce\n",
"dfs = [mode_i, mode_c, mode_city, mode_type]\n",
"mode_final = reduce(lambda left,right: pd.merge(left,right,on='Affiliations'), dfs)\n",
"mode_final = mode_final.reset_index()\n",
"mode_final.columns = [\"Affiliations\",\"Institution (short name from address)\",\"Country_candidate\",\"City_candidate\",\"Country_type_candidate\"]\n",
"mode_final"
],
"metadata": {
"collapsed": false
2 years ago
}
},
{
"cell_type": "code",
"execution_count": 40,
"outputs": [
{
"data": {
"text/plain": " Affiliations \n1873185 (ADVENTHEALTH) CENTRAL FLORIDA DIVISION \\\n1873299 (ADVENTHEALTH) CENTRAL FLORIDA DIVISION \n1873346 (ADVENTHEALTH) CENTRAL FLORIDA DIVISION \n1873394 (ADVENTHEALTH) CENTRAL FLORIDA DIVISION \n1873170 (ADVENTHEALTH) CENTRAL FLORIDA DIVISION \n... ... \n715405 ZUSE INSTITUTE BERLIN \n1548143 ZUSE INSTITUTE BERLIN \n715403 ZUSE INSTITUTE BERLIN \n1548154 ZUSE INSTITUTE BERLIN \n715409 ZUSE INSTITUTE BERLIN \n\n Institution levehnstein \n1873185 ST JOSEPHS HLTH CARE LONDON 28 \n1873299 ATHENS NAVAL & VET HOSP 28 \n1873346 ASST VALCAMONICA OSPED ESINE 28 \n1873394 ASST VALTELLINA & ALTO LARIO 28 \n1873170 FUNDACAO CTR MED CAMPINAS 29 \n... ... ... \n715405 CARL VON OSSIETZKY UNIV OLDENBURG 25 \n1548143 CHONGQING UNIV POSTS & TELECOMMUN 26 \n715403 GERMAN CTR NEURODEGENRAT DIS DZNE 27 \n1548154 UNIV KLINIKUM SCHLESWIG HOLSTEIN KIEL 30 \n715409 INESC TEC INST ENGN SISTEMAS & COMP TECNOL & CIEN 35 \n\n[773544 rows x 3 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Affiliations</th>\n <th>Institution</th>\n <th>levehnstein</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1873185</th>\n <td>(ADVENTHEALTH) CENTRAL FLORIDA DIVISION</td>\n <td>ST JOSEPHS HLTH CARE LONDON</td>\n <td>28</td>\n </tr>\n <tr>\n <th>1873299</th>\n <td>(ADVENTHEALTH) CENTRAL FLORIDA DIVISION</td>\n <td>ATHENS NAVAL &amp; VET HOSP</td>\n <td>28</td>\n </tr>\n <tr>\n <th>1873346</th>\n <td>(ADVENTHEALTH) CENTRAL FLORIDA DIVISION</td>\n <td>ASST VALCAMONICA OSPED ESINE</td>\n <td>28</td>\n </tr>\n <tr>\n <th>1873394</th>\n <td>(ADVENTHEALTH) CENTRAL FLORIDA DIVISION</td>\n <td>ASST VALTELLINA &amp; ALTO LARIO</td>\n <td>28</td>\n </tr>\n <tr>\n <th>1873170</th>\n <td>(ADVENTHEALTH) CENTRAL FLORIDA DIVISION</td>\n <td>FUNDACAO CTR MED CAMPINAS</td>\n <td>29</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>715405</th>\n <td>ZUSE INSTITUTE BERLIN</td>\n <td>CARL VON OSSIETZKY UNIV OLDENBURG</td>\n <td>25</td>\n </tr>\n <tr>\n <th>1548143</th>\n <td>ZUSE INSTITUTE BERLIN</td>\n <td>CHONGQING UNIV POSTS &amp; TELECOMMUN</td>\n <td>26</td>\n </tr>\n <tr>\n <th>715403</th>\n <td>ZUSE INSTITUTE BERLIN</td>\n <td>GERMAN CTR NEURODEGENRAT DIS DZNE</td>\n <td>27</td>\n </tr>\n <tr>\n <th>1548154</th>\n <td>ZUSE INSTITUTE BERLIN</td>\n <td>UNIV KLINIKUM SCHLESWIG HOLSTEIN KIEL</td>\n <td>30</td>\n </tr>\n <tr>\n <th>715409</th>\n <td>ZUSE INSTITUTE BERLIN</td>\n <td>INESC TEC INST ENGN SISTEMAS &amp; COMP TECNOL &amp; CIEN</td>\n <td>35</td>\n </tr>\n </tbody>\n</table>\n<p>773544 rows × 3 columns</p>\n</div>"
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aff_lookup = affiliations[[\"Affiliations\",\"Institution\",\"levehnstein\"]].drop_duplicates().sort_values(by=[\"Affiliations\",\"levehnstein\"],ascending=[True,True])\n",
"aff_lookup"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 42,
"outputs": [
{
"data": {
"text/plain": "[['THERESIENKRANKENHAUS'],\n ['CHARITE'],\n ['SALAMAH'],\n ['ASTAR'],\n ['INSERM'],\n ['CNRS'],\n ['MIT'],\n ['CNPQ'],\n ['UNICEN'],\n ['IRCCS'],\n ['NEI'],\n ['UCL'],\n ['UESTC'],\n ['SOVECTRON'],\n ['NTENT'],\n ['IEEE'],\n ['QMUL'],\n ['LCA'],\n ['CALTECH'],\n ['EUROFUSION'],\n ['LIWFUSION'],\n ['CIEMAT'],\n ['UNED'],\n ['ZALANDO'],\n ['VIIT'],\n ['CUNY'],\n ['KIIT'],\n ['USTC'],\n ['ASIPP'],\n ['ORISE'],\n ['IET'],\n ['AAIA'],\n ['TRAP'],\n ['CSIC'],\n ['ESAC'],\n ['ESTEC'],\n ['SISSA'],\n ['CERN'],\n ['IRFM'],\n ['NOKIA'],\n ['BUPT'],\n ['JET'],\n ['NIH'],\n ['MICROSOFT'],\n ['METU'],\n ['RIKEN'],\n ['QST'],\n ['DIFFER'],\n ['CEFCA'],\n ['ULL'],\n ['INFN'],\n ['IUCAA'],\n ['BCS'],\n ['KTH'],\n ['CRPP'],\n ['CEA'],\n ['ULB'],\n ['CCFE'],\n ['COMPX'],\n ['HKUST'],\n ['UNSW'],\n ['IEEC'],\n ['AMAZON'],\n ['IPSL'],\n ['IRD'],\n ['RAS'],\n ['CIRAD'],\n ['CREAF'],\n ['NYU'],\n ['EPFL'],\n ['UPMC'],\n ['UAM'],\n ['NTNU'],\n ['ABBVIE'],\n ['GLAXOSMITHKLINE'],\n ['BELANGER-CHAMPAGNE'],\n ['AHARROUCHE'],\n ['BAHMANI'],\n ['COUTINHO'],\n ['ICREA'],\n ['BELLOMO'],\n ['AKESSON'],\n ['UCAS'],\n ['LPTPM'],\n ['CINDRO'],\n ['AKATSUKA'],\n ['AHMADOV'],\n ['DESY'],\n ['AOUN'],\n ['IN2P3'],\n ['IFAE'],\n ['CHEN'],\n ['AOKI'],\n ['AAD'],\n ['KEK'],\n ['FIAS'],\n ['HBNI'],\n ['CAS'],\n ['GRANDITUDE'],\n ['CSIRO'],\n ['NHGRI'],\n ['NPR'],\n ['ACECR'],\n ['MRC'],\n ['ORYGEN'],\n ['NEUROSKETCH'],\n ['JANCSITECH'],\n ['CNR'],\n ['BAINBRIDGE'],\n ['NICPB'],\n ['NIKITENKO'],\n ['IISER'],\n ['IPN'],\n ['BELL'],\n ['PATH'],\n ['WHO'],\n ['CHALEARN'],\n ['4PARADIGM'],\n ['CORNELL'],\n ['INRIA'],\n ['ANU'],\n ['USC'],\n ['CMU'],\n ['UIUC'],\n ['EMORY'],\n ['ABDULLIN'],\n ['ACOSTA'],\n ['CUMALAT'],\n ['AMIN'],\n ['BRANSON'],\n ['BELYAEV'],\n ['ETH'],\n ['NSU'],\n ['NTU'],\n ['COUBEZ'],\n ['INPP'],\n ['OEAW'],\n ['GAPPS'],\n ['TNO'],\n ['MEDTRONIC'],\n ['METEOSWISS'],\n ['ASTRON'],\n ['INAF'],\n ['ESA'],\n ['IFPU'],\n ['INTERDIGITAL'],\n ['QCAT'],\n ['AETHERAI'],\n ['AGRESEARCH'],\n ['ARS'],\n ['CICAPS'],\n ['INRA'],\n ['AGROPARISTECH'],\n ['AGROSCOPE'],\n ['UAB'],\n ['MAGELLIUM'],\n ['IFREMER'],\n ['AIRBUS'],\n ['EUMETSAT'],\n ['CINVESTAV'],\n ['AREEO'],\n ['NOVELTIS'],\n ['NERSC'],\n ['IRRCS'],\n ['ISRO'],\n ['CNES'],\n ['JAMSTEC'],\n ['CIMA'],\n ['UNAM'],\n ['SOCIB'],\n ['CLS'],\n ['PAS'],\n ['OCEANDATALAB'],\n ['LLC'],\n ['NIKHEF'],\n ['TIFR'],\n ['CAFPE'],\n ['ECMWF'],\n ['SATOC'],\n ['NOAA'],\n ['CPRM'],\n ['SHOM'],\n ['DAIM'],\n ['UTM'],\n ['NIA'],\n ['POSTECH'],\n ['DBRAIN'],\n ['GIANTAI'],\n ['ISCAS'],\n ['GOOGLE'],\n ['INTEL'],\n ['SOARTECH'],\n ['NNAISENSE'],\n ['OOSTO'],\n ['HUMINTEC'],\n ['CAPSS'],\n ['ISS'],\n ['JINR'],\n ['AMU'],\n ['HIP'],\n ['IKERBASQUE'],\n ['TRIUMF'],\n ['SNOLAB'],\n ['TUNL'],\n ['NASU'],\n ['ZILLOW'],\n ['OICR'],\n ['NCI'],\n ['DOCBOT'],\n ['PRIZE4LIFE'],\n ['LINKEDIN'],\n ['NVIDIA'],\n ['SONATRACH'],\n ['NPC'],\n ['SIMATS'],\n ['CAPSBE'],\n ['CCNU'],\n ['IIT'],\n ['URCA'],\n ['SOUNDCLOUD'],\n ['LINEA'],\n ['OPROJECT'],\n ['ELSEVIER'],\n ['LSST'],\n ['SMARTMORE'],\n ['JRC'],\n ['CASTELLDEFELS'],\n ['NASA'],\n ['AREU'],\n ['CERIST'],\n ['INSIGHTS2TECHINFO'],\n ['ERICSSON'],\n ['INICSA'],\n ['PSYCHIAT'],\n ['UNICAMILLUS'],\n ['ULTROMICS'],\n ['ISSSTE'],\n ['INCMNSZ'],\n ['TQEH'],\n ['PATHAI'],\n ['WITSEE'],\n ['HOSAIO'],\n ['INNSZ'],\n ['MSGSU'],\n ['EMBL'],\n ['NIMH'],\n ['UCLA'],\n ['HUAWEI'],\n ['HUST'],\n ['OMRF'],\n ['UMCU'],\n ['PTB'],\n ['UMCL'],\n ['TUM'],\n ['UNC'],\n ['UVSQ'],\n ['PSL'],\n ['CAML'],\n ['CMC'],\n ['UMC'],\n ['GRCC'],\n ['IRIT'],\n ['IRISA'],\n ['OSUR'],\n ['UOC'],\n ['ASTRAZENECA'],\n ['BAYER'],\n ['GALIXIR'],\n ['BEIERSDORF'],\n ['AT&T'],\n ['IST'],\n ['MILA'],\n ['ACCENTURE'],\n ['1QBIT'],\n ['UGA'],\n ['UBL'],\n ['UIB'],\n ['IAE'],\n ['INAIL'],\n ['JARA'],\n ['CIBERSAM'],\n ['IDIBAPS'],\n ['QUALCOMM'],\n ['NICTA'],\n ['IAC'],\n ['BYTEDANCE'],\n ['BBC'],\n ['NUMENTA'],\n ['OROBIX'],\n ['VHIR'],\n ['INAOE'],\n ['BIST'],\n ['EURECAT'],\n ['UB'],\n ['PAB'],\n ['FAU'],\n ['ICISE'],\n ['BAIDU'],\n ['EURECOM'],\n ['BUITEMS'],\n ['BHU'],\n ['DNANEXUS'],\n ['RESIST'],\n ['I
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aff_lookup_levehnstein = aff_lookup.copy()\n",
"aff_lookup_overlap = aff_lookup.copy()\n",
"inst_short = sorted([i.split(\" \") for i in list(aff_lookup_overlap[\"Institution\"].unique())], key=len)\n",
"inst_short"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 41,
"outputs": [
{
"data": {
"text/plain": " Affiliations \n1873185 (ADVENTHEALTH) CENTRAL FLORIDA DIVISION \\\n1939932 1 DECEMBRIE 1918 UNIVERSITY ALBA IULIA \n933680 A*STAR - BIOINFORMATICS INSTITUTE (BII) \n2257766 A*STAR - GENOME INSTITUTE OF SINGAPORE (GIS) \n2364292 A*STAR - INSTITUTE FOR INFOCOMM RESEARCH (I2R) \n... ... \n1523750 ZTE \n2032613 ZUNYI MEDICAL UNIVERSITY \n476604 ZURICH CENTER INTEGRATIVE HUMAN PHYSIOLOGY (ZIHP) \n975211 ZURICH UNIVERSITY OF APPLIED SCIENCES \n715406 ZUSE INSTITUTE BERLIN \n\n Institution levehnstein \n1873185 ST JOSEPHS HLTH CARE LONDON 28 \n1939932 1 DECEMBRIE 1918 UNIV ALBA IULIA 6 \n933680 SHANDONG NORMAL UNIV 29 \n2257766 AGCY SCI TECHNOL & RES 34 \n2364292 INST INFOCOMM RES I2R 25 \n... ... ... \n1523750 ZTE CORP 5 \n2032613 ZUNYI MED UNIV 10 \n476604 SWISS FED INST TECHNOL ZURICH 36 \n975211 ZURICH UNIV APPL SCI ZHAW 17 \n715406 ZUSE INST BERLIN 5 \n\n[4884 rows x 3 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Affiliations</th>\n <th>Institution</th>\n <th>levehnstein</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1873185</th>\n <td>(ADVENTHEALTH) CENTRAL FLORIDA DIVISION</td>\n <td>ST JOSEPHS HLTH CARE LONDON</td>\n <td>28</td>\n </tr>\n <tr>\n <th>1939932</th>\n <td>1 DECEMBRIE 1918 UNIVERSITY ALBA IULIA</td>\n <td>1 DECEMBRIE 1918 UNIV ALBA IULIA</td>\n <td>6</td>\n </tr>\n <tr>\n <th>933680</th>\n <td>A*STAR - BIOINFORMATICS INSTITUTE (BII)</td>\n <td>SHANDONG NORMAL UNIV</td>\n <td>29</td>\n </tr>\n <tr>\n <th>2257766</th>\n <td>A*STAR - GENOME INSTITUTE OF SINGAPORE (GIS)</td>\n <td>AGCY SCI TECHNOL &amp; RES</td>\n <td>34</td>\n </tr>\n <tr>\n <th>2364292</th>\n <td>A*STAR - INSTITUTE FOR INFOCOMM RESEARCH (I2R)</td>\n <td>INST INFOCOMM RES I2R</td>\n <td>25</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>1523750</th>\n <td>ZTE</td>\n <td>ZTE CORP</td>\n <td>5</td>\n </tr>\n <tr>\n <th>2032613</th>\n <td>ZUNYI MEDICAL UNIVERSITY</td>\n <td>ZUNYI MED UNIV</td>\n <td>10</td>\n </tr>\n <tr>\n <th>476604</th>\n <td>ZURICH CENTER INTEGRATIVE HUMAN PHYSIOLOGY (ZIHP)</td>\n <td>SWISS FED INST TECHNOL ZURICH</td>\n <td>36</td>\n </tr>\n <tr>\n <th>975211</th>\n <td>ZURICH UNIVERSITY OF APPLIED SCIENCES</td>\n <td>ZURICH UNIV APPL SCI ZHAW</td>\n <td>17</td>\n </tr>\n <tr>\n <th>715406</th>\n <td>ZUSE INSTITUTE BERLIN</td>\n <td>ZUSE INST BERLIN</td>\n <td>5</td>\n </tr>\n </tbody>\n</table>\n<p>4884 rows × 3 columns</p>\n</div>"
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aff_lookup.drop_duplicates(subset=\"Affiliations\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 39,
"outputs": [
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
"\u001B[1;31mKeyboardInterrupt\u001B[0m Traceback (most recent call last)",
"Cell \u001B[1;32mIn[39], line 9\u001B[0m\n\u001B[0;32m 4\u001B[0m aff_lookup \u001B[38;5;241m=\u001B[39m aff_m\u001B[38;5;241m.\u001B[39mmerge(inst_m, how\u001B[38;5;241m=\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mcross\u001B[39m\u001B[38;5;124m'\u001B[39m)\n\u001B[0;32m 6\u001B[0m \u001B[38;5;66;03m# aff_lookup[\"levehnstein\"] = aff_lookup.apply(\u001B[39;00m\n\u001B[0;32m 7\u001B[0m \u001B[38;5;66;03m# lambda x: edit_distance(x[\"Affiliations\"], x[\"Institution\"]), axis=1)\u001B[39;00m\n\u001B[1;32m----> 9\u001B[0m aff_lookup\u001B[38;5;241m.\u001B[39massign(distance\u001B[38;5;241m=\u001B[39m[\u001B[38;5;241m*\u001B[39m\u001B[38;5;28mmap\u001B[39m(edit_distance, aff_lookup\u001B[38;5;241m.\u001B[39mAffiliations, aff_lookup\u001B[38;5;241m.\u001B[39mInstitution)])\n",
"File \u001B[1;32m~\\.conda\\envs\\MOME_BIGDATA\\lib\\site-packages\\nltk\\metrics\\distance.py:111\u001B[0m, in \u001B[0;36medit_distance\u001B[1;34m(s1, s2, substitution_cost, transpositions)\u001B[0m\n\u001B[0;32m 109\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m s1[i \u001B[38;5;241m-\u001B[39m \u001B[38;5;241m1\u001B[39m] \u001B[38;5;241m==\u001B[39m s2[j \u001B[38;5;241m-\u001B[39m \u001B[38;5;241m1\u001B[39m]:\n\u001B[0;32m 110\u001B[0m last_right_buf \u001B[38;5;241m=\u001B[39m j\n\u001B[1;32m--> 111\u001B[0m \u001B[43m_edit_dist_step\u001B[49m\u001B[43m(\u001B[49m\n\u001B[0;32m 112\u001B[0m \u001B[43m \u001B[49m\u001B[43mlev\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 113\u001B[0m \u001B[43m \u001B[49m\u001B[43mi\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 114\u001B[0m \u001B[43m \u001B[49m\u001B[43mj\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 115\u001B[0m \u001B[43m \u001B[49m\u001B[43ms1\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 116\u001B[0m \u001B[43m \u001B[49m\u001B[43ms2\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 117\u001B[0m \u001B[43m \u001B[49m\u001B[43mlast_left\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 118\u001B[0m \u001B[43m \u001B[49m\u001B[43mlast_right\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 119\u001B[0m \u001B[43m \u001B[49m\u001B[43msubstitution_cost\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43msubstitution_cost\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 120\u001B[0m \u001B[43m \u001B[49m\u001B[43mtranspositions\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mtranspositions\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 121\u001B[0m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 122\u001B[0m last_left_t[s1[i \u001B[38;5;241m-\u001B[39m \u001B[38;5;241m1\u001B[39m]] \u001B[38;5;241m=\u001B[39m i\n\u001B[0;32m 123\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m lev[len1][len2]\n",
"File \u001B[1;32m~\\.conda\\envs\\MOME_BIGDATA\\lib\\site-packages\\nltk\\metrics\\distance.py:52\u001B[0m, in \u001B[0;36m_edit_dist_step\u001B[1;34m(lev, i, j, s1, s2, last_left, last_right, substitution_cost, transpositions)\u001B[0m\n\u001B[0;32m 50\u001B[0m b \u001B[38;5;241m=\u001B[39m lev[i][j \u001B[38;5;241m-\u001B[39m \u001B[38;5;241m1\u001B[39m] \u001B[38;5;241m+\u001B[39m \u001B[38;5;241m1\u001B[39m\n\u001B[0;32m 51\u001B[0m \u001B[38;5;66;03m# substitution\u001B[39;00m\n\u001B[1;32m---> 52\u001B[0m c \u001B[38;5;241m=\u001B[39m \u001B[43mlev\u001B[49m\u001B[43m[\u001B[49m\u001B[43mi\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m-\u001B[39;49m\u001B[43m \u001B[49m\u001B[38;5;241;43m1\u001B[39;49m\u001B[43m]\u001B[49m[j \u001B[38;5;241m-\u001B[39m \u001B[38;5;241m1\u001B[39m] \u001B[38;5;241m+\u001B[39m (substitution_cost \u001B[38;5;28;01mif\u001B[39;00m c1 \u001B[38;5;241m!=\u001B[39m c2 \u001B[38;5;28;01melse\u001B[39;00m \u001B[38;5;241m0\u001B[39m)\n\u001B[0;32m 54\u001B[0m \u001B[38;5;66;03m# transposition\u001B[39;00m\n\u001B[0;32m 55\u001B[0m d \u001B[38;5;241m=\u001B[39m c \u001B[38;5;241m+\u001B[39m \u001B[38;5;241m1\u001B[39m \u001B[38;5;66;03m# never picked by default\u001B[39;00m\n",
"\u001B[1;31mKeyboardInterrupt\u001B[0m: "
]
}
],
"source": [
"# aff_m = pd.DataFrame(affiliations[\"Affiliations\"].unique(), columns=[\"Affiliations\"])\n",
"# inst_m = pd.DataFrame(affiliations[[\"Institution\",\"Country_Type\",\"Country\",\"City\"]].drop_duplicates(),columns=[\"Institution\",\"Country_Type\",\"Country\",\"City\"])\n",
"#\n",
"# aff_lookup = aff_m.merge(inst_m, how='cross')\n",
"#\n",
"# # aff_lookup[\"levehnstein\"] = aff_lookup.apply(\n",
"# # lambda x: edit_distance(x[\"Affiliations\"], x[\"Institution\"]), axis=1)\n",
"#\n",
"# aff_lookup.assign(distance=[*map(edit_distance, aff_lookup.Affiliations, aff_lookup.Institution)])"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 27,
"outputs": [
{
"data": {
"text/plain": "<Axes: ylabel='Frequency'>"
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAAGsCAYAAAA2QxZ6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAsLElEQVR4nO3de3gU9b3H8c9uQi4SU0OAVFDxgtwChJAIovGGBYOSA2KxiApewYcCeuhTIVghCIhBi1rxKNjGouClKGApN0XU4wGFY5Bg4CRNRCAVKwsNImxIDDvnD2TrGpBkMslk+b1fz8PzML+d+e2XL0P2w8zsjMeyLEsAAACnOa/bBQAAADQGQg8AADACoQcAABiB0AMAAIxA6AEAAEYg9AAAACMQegAAgBEIPQAAwAiEHgAAYARjQ09VVZUGDhyojRs31nqbTZs2adCgQUpJSdHNN9+soqKiBqwQAAA4ycjQU1lZqQkTJqikpKTW25SVlenee+9Vv3799NZbb6ljx44aM2aMqqqqGrBSAADgFONCT2lpqW6++Wbt3r27TtstXLhQ3bt319ixY3X++edr8uTJ8nq92rFjRwNVCgAAnGRc6Nm0aZN69+6t119/vcZrn3zyiYYMGaLu3bsrKytLa9asCdmuf//+weXY2FitXbtWnTp1apS6AQBA/US6XUBjGz58+AnHfT6fRo8erf/8z//UFVdcoS1btmjSpElKTExUenq6ysrKFBMTo/Hjx+uTTz5R+/btNWXKFLVv376R/wQAAMAO4470nMyiRYt02WWX6bbbblO7du00aNAg/epXv9KCBQskSX6/X0888YQuueQSvfDCCzr77LN1xx136PDhwy5XDgAAasO4Iz0ns2PHDr333ntKTU0Njn333Xe64IILJEkRERHq27evbr/9dknS9OnTdfXVV2vdunXKyspypWYAAFB7hJ7vVVdXKysrS/fdd1/IeGTksRa1atUqGIAkKSoqSm3bttVXX33VqHUCAAB7OL31vQsuuEC7du1Su3btgr/effddLV++XJLUo0cPFRcXB9evqqpSWVmZzjnnHLdKBgAAdUDo+d7w4cNVWFioJ598Ujt37tTy5cs1Z84ctWnTRpI0cuRIrVmzRq+88op27typRx55RNHR0br66qvdLRwAANSKx7Isy+0i3NKxY0e99NJL6t27tyRpw4YNeuKJ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
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"affiliations[\"levehnstein\"].plot(kind=\"hist\")"
],
"metadata": {
"collapsed": false
}
},
2 years ago
{
"cell_type": "code",
"execution_count": 74,
"outputs": [
{
"data": {
"text/plain": "<Axes: ylabel='Frequency'>"
},
"execution_count": 74,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "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
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"affiliations[\"token_overlap\"].plot(kind=\"hist\")"
],
"metadata": {
"collapsed": false
}
},
2 years ago
{
"cell_type": "code",
"execution_count": 29,
"outputs": [
{
"data": {
"text/plain": " UT (Unique WOS ID) \n136998 WOS:000321029900001 \\\n136999 WOS:000321029900001 \n137000 WOS:000321029900001 \n137001 WOS:000321029900001 \n137002 WOS:000321029900001 \n... ... \n2426115 WOS:000934156000001 \n2426116 WOS:000934156000001 \n2426117 WOS:000934156000001 \n2426118 WOS:000934156000001 \n2426119 WOS:000934156000001 \n\n Affiliations \n136998 AGENCY FOR SCIENCE TECHNOLOGY & RESEARCH (A*STAR) \\\n136999 AGENCY FOR SCIENCE TECHNOLOGY & RESEARCH (A*STAR) \n137000 AGENCY FOR SCIENCE TECHNOLOGY & RESEARCH (A*STAR) \n137001 AGENCY FOR SCIENCE TECHNOLOGY & RESEARCH (A*STAR) \n137002 A*STAR - BIOINFORMATICS INSTITUTE (BII) \n... ... \n2426115 A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI... \n2426116 A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI... \n2426117 A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI... \n2426118 A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI... \n2426119 A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI... \n\n Affiliations_merged \n136998 AGENCY FOR SCIENCE TECHNOLOGY & RESEARCH A*STAR \\\n136999 AGENCY FOR SCIENCE TECHNOLOGY & RESEARCH A*STAR \n137000 AGENCY FOR SCIENCE TECHNOLOGY & RESEARCH A*STAR \n137001 AGENCY FOR SCIENCE TECHNOLOGY & RESEARCH A*STAR \n137002 A*STAR - BIOINFORMATICS INSTITUTE BII \n... ... \n2426115 A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI... \n2426116 A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI... \n2426117 A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI... \n2426118 A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI... \n2426119 A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI... \n\n Address Country \n136998 Univ Oulu, Ctr Machine Vis Res, SF-90100 Oulu... Finland \\\n136999 Univ Calif Santa Barbara, Dept Comp Sci, Sant... United States \n137000 Chinese Acad Sci, NLPR, Inst Automat, Beijing... China \n137001 Natl Univ Singapore, Bioinformat Inst, A STAR... Singapore \n137002 Univ Oulu, Ctr Machine Vis Res, SF-90100 Oulu... Finland \n... ... ... \n2426115 Chinese Acad Sci, Ningbo Inst Mat Technol & E... China \n2426116 Univ N Carolina, Dept Radiol, Chapel Hill, NC... United States \n2426117 Univ Cambridge, DAMTP, Cambridge CB2 1TN, Eng... United Kingdom \n2426118 Univ Leeds, Computat Med & Royal Acad, Leeds ... United Kingdom \n2426119 Katholieke Univ Leuven, B-3000 Leuven, Belgium Belgium \n\n City Country_Type Institution levehnstein \n136998 Oulu EU UNIV OULU 45 \n136999 Santa Barbara Other UNIV CALIF SANTA BARBARA 37 \n137000 Beijing China CHINESE ACAD SCI 40 \n137001 Singapore Other NATL UNIV SINGAPORE 41 \n137002 Oulu EU UNIV OULU 35 \n... ... ... ... ... \n2426115 Beijing China CHINESE ACAD SCI 47 \n2426116 Carolina Other UNIV N CAROLINA 47 \n2426117 Cambridge Other UNIV CAMBRIDGE 48 \n2426118 Leeds Other UNIV LEEDS 50 \n2426119 Leuven EU KATHOLIEKE UNIV LEUVEN 45 \n\n[711 rows x 9 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>UT (Unique WOS ID)</th>\n <th>Affiliations</th>\n <th>Affiliations_merged</th>\n <th>Address</th>\n <th>Country</th>\n <th>City</th>\n <th>Country_Type</th>\n <th>Institution</th>\n <th>levehnstein</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>136998</th>\n <td>WOS:000321029900001</td>\n <td>AGENCY FOR SCIENCE TECHNOLOGY &amp; RESEARCH (A*STAR)</td>\n <td>AGENCY FOR SCIENCE TECHNOLOGY &amp; RESEARCH A*STAR</td>\n <td>Univ Oulu, Ctr Machine Vis Res, SF-90100 Oulu...</td>\n <td>Finland</td>\n <td>Oulu</td>\n <td>EU</td>\n <td>UNIV OULU</td>\n <td>45</td>\n </tr>\n <tr>\n <th>136999</th>\n <td>WOS:000321029900001</td>\n <td>AGENCY FOR SCIENCE TECHNOLOGY &amp; RESEARCH (A*STAR)</td>\n <td>AGENCY FOR SCIENCE TECHNOLOGY &amp; RESEARCH A*STAR</td>\n <td>Univ Calif Santa Barbara, Dept Comp Sci, Sant...</td>\n <td>United States</td>\n <td>Santa Barbara</td>\n <td>Other</td>\n <td>UNIV CALIF SANTA BARBARA</td>\n <td>37</td>\n </tr>\n <tr>\n <th>137000</th>\n <td>WOS:000321029900001</td>\n <td>AGENCY FOR SCIENCE TECHNOLOGY &amp; RESEARCH (A*STAR)</td>\n <td>AGENCY FOR SCIENCE TECHNOLOGY &amp; RESEARCH A*STAR</td>\n <td>Chinese Acad Sci, NLPR, Inst Automat, Beijing...</td>\n <td>China</td>\n <td>Beijing</td>\n <td>China</td>\n <td>CHINESE ACAD SCI</td>\n <td>40</td>\n </tr>\n <tr>\n <th>137001</th>\n <td>WOS:000321029900001</td>\n <td>AGENCY FOR SCIENCE TECHNOLOGY &amp; RESEARCH (A*STAR)</td>\n <td>AGENCY FOR SCIENCE TECHNOLOGY &amp; RESEARCH A*STAR</td>\n <td>Natl Univ Singapore, Bioinformat Inst, A STAR...</td>\n <td>Singapore</td>\n <td>Singapore</td>\n <td>Other</td>\n <td>NATL UNIV SINGAPORE</td>\n <td>41</td>\n </tr>\n <tr>\n <th>137002</th>\n <td>WOS:000321029900001</td>\n <td>A*STAR - BIOINFORMATICS INSTITUTE (BII)</td>\n <td>A*STAR - BIOINFORMATICS INSTITUTE BII</td>\n <td>Univ Oulu, Ctr Machine Vis Res, SF-90100 Oulu...</td>\n <td>Finland</td>\n <td>Oulu</td>\n <td>EU</td>\n <td>UNIV OULU</td>\n <td>35</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>2426115</th>\n <td>WOS:000934156000001</td>\n <td>A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI...</td>\n <td>A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI...</td>\n <td>Chinese Acad Sci, Ningbo Inst Mat Technol &amp; E...</td>\n <td>China</td>\n <td>Beijing</td>\n <td>China</td>\n <td>CHINESE ACAD SCI</td>\n <td>47</td>\n </tr>\n <tr>\n <th>2426116</th>\n <td>WOS:000934156000001</td>\n <td>A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI...</td>\n <td>A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI...</td>\n <td>Univ N Carolina, Dept Radiol, Chapel Hill, NC...</td>\n <td>United States</td>\n <td>Carolina</td>\n <td>Other</td>\n <td>UNIV N CAROLINA</td>\n <td>47</td>\n </tr>\n <tr>\n <th>2426117</th>\n <td>WOS:000934156000001</td>\n <td>A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI...</td>\n <td>A*STAR - INSTITUTE OF HIGH PERFORMANCE COMPUTI...</td>\n <td>Univ Cambridge, DAMTP, Cambridge CB2 1TN, Eng...</td>\n <td>United Kingdom</td>\n <td>Cambridge</td>\n <td>Other</td>\n <td>UNIV CAMBRIDGE</td>\n <td>48</td>\n </tr
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"affiliations[affiliations[\"Affiliations\"].str.contains(\"A*STAR\",regex=False)]"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 133,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>UT (Unique WOS ID)</th>\n",
" <th>Affiliations</th>\n",
" <th>Affiliations_merged</th>\n",
" <th>Address</th>\n",
" <th>Country</th>\n",
" <th>City</th>\n",
" <th>Country_Type</th>\n",
" <th>Institution</th>\n",
" <th>levehnstein</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2430154</th>\n",
" <td>WOS:000947693400001</td>\n",
" <td>UNIVERSITAT POLITECNICA DE VALENCIA</td>\n",
" <td>UNIVERSITAT POLITECNICA DE VALENCIA</td>\n",
" <td>Univ Politecn Valencia, European Inst Innovat...</td>\n",
" <td>Spain</td>\n",
" <td>Valencia</td>\n",
" <td>EU</td>\n",
" <td>UNIV POLITECN VALENCIA</td>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2430132</th>\n",
" <td>WOS:000947693400001</td>\n",
" <td>SHANGHAITECH UNIVERSITY</td>\n",
" <td>SHANGHAITECH UNIVERSITY</td>\n",
" <td>ShanghaiTech Univ, Shanghai Inst Adv Immunoch...</td>\n",
" <td>China</td>\n",
" <td>Shanghai</td>\n",
" <td>China</td>\n",
" <td>SHANGHAITECH UNIV</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2430139</th>\n",
" <td>WOS:000947693400001</td>\n",
" <td>SHANGHAI OCEAN UNIVERSITY</td>\n",
" <td>SHANGHAI UNIVERSITY</td>\n",
" <td>Shanghai Ocean Univ, Coll Fisheries &amp; Life Sc...</td>\n",
" <td>China</td>\n",
" <td>Shanghai</td>\n",
" <td>China</td>\n",
" <td>SHANGHAI OCEAN UNIV</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2430146</th>\n",
" <td>WOS:000947693400001</td>\n",
" <td>SHANGHAI JIAO TONG UNIVERSITY</td>\n",
" <td>SHANGHAI UNIVERSITY</td>\n",
" <td>Shanghai Jiao Tong Univ, Ruijin Hosp, Sch Med...</td>\n",
" <td>China</td>\n",
" <td>Meda</td>\n",
" <td>China</td>\n",
" <td>SHANGHAI JIAO TONG UNIV</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2430125</th>\n",
" <td>WOS:000947693400001</td>\n",
" <td>HUZHOU UNIVERSITY</td>\n",
" <td>HUZHOU UNIVERSITY</td>\n",
" <td>Huzhou Univ, Sch Informat Engn, Huzhou 313000...</td>\n",
" <td>China</td>\n",
" <td>Huzhou</td>\n",
" <td>China</td>\n",
" <td>HUZHOU UNIV</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2430113</th>\n",
" <td>WOS:000946746700001</td>\n",
" <td>SUZHOU UNIVERSITY OF SCIENCE &amp; TECHNOLOGY</td>\n",
" <td>SUZHOU UNIVERSITY OF SCIENCE &amp; TECHNOLOGY</td>\n",
" <td>Suzhou Univ Sci &amp; Technol, Sch Elect &amp; Inform...</td>\n",
" <td>China</td>\n",
" <td>Suzhou</td>\n",
" <td>China</td>\n",
" <td>SUZHOU UNIV SCI &amp; TECHNOL</td>\n",
" <td>16</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2430118</th>\n",
" <td>WOS:000946746700001</td>\n",
" <td>POLYTECHNIC UNIVERSITY OF MILAN</td>\n",
" <td>UNIVERSITY OF MILAN</td>\n",
" <td>Politecn Milan, Dept Mech Engn, Milan, Italy;</td>\n",
" <td>Italy</td>\n",
" <td>Milano</td>\n",
" <td>EU</td>\n",
" <td>POLITECN MILAN</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2430123</th>\n",
" <td>WOS:000946746700001</td>\n",
" <td>HONG KONG POLYTECHNIC UNIVERSITY</td>\n",
" <td>HONG KONG POLYTECHNIC UNIVERSITY</td>\n",
" <td>Hong Kong Polytech Univ, Dept Comp, Hong Kong...</td>\n",
" <td>China</td>\n",
" <td>Hong Kong</td>\n",
" <td>China</td>\n",
" <td>HONG KONG POLYTECH UNIV</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2430111</th>\n",
" <td>WOS:000945297300001</td>\n",
" <td>UNIVERSITY OF PANNONIA</td>\n",
" <td>UNIVERSITY OF PANNONIA</td>\n",
" <td>Univ Pannonia, Dept Elect Engn &amp; Informat Sys...</td>\n",
" <td>Hungary</td>\n",
" <td>Veszprém</td>\n",
" <td>EU</td>\n",
" <td>UNIV PANNONIA</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2430107</th>\n",
" <td>WOS:000945297300001</td>\n",
" <td>SHENYANG UNIVERSITY OF TECHNOLOGY</td>\n",
" <td>SHENYANG UNIVERSITY</td>\n",
" <td>Shenyang Univ Technol, Sch Elect Engn, Dept B...</td>\n",
" <td>China</td>\n",
" <td>Shenyang</td>\n",
" <td>China</td>\n",
" <td>SHENYANG UNIV TECHNOL</td>\n",
" <td>12</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" UT (Unique WOS ID) Affiliations \n",
"2430154 WOS:000947693400001 UNIVERSITAT POLITECNICA DE VALENCIA \\\n",
"2430132 WOS:000947693400001 SHANGHAITECH UNIVERSITY \n",
"2430139 WOS:000947693400001 SHANGHAI OCEAN UNIVERSITY \n",
"2430146 WOS:000947693400001 SHANGHAI JIAO TONG UNIVERSITY \n",
"2430125 WOS:000947693400001 HUZHOU UNIVERSITY \n",
"2430113 WOS:000946746700001 SUZHOU UNIVERSITY OF SCIENCE & TECHNOLOGY \n",
"2430118 WOS:000946746700001 POLYTECHNIC UNIVERSITY OF MILAN \n",
"2430123 WOS:000946746700001 HONG KONG POLYTECHNIC UNIVERSITY \n",
"2430111 WOS:000945297300001 UNIVERSITY OF PANNONIA \n",
"2430107 WOS:000945297300001 SHENYANG UNIVERSITY OF TECHNOLOGY \n",
"\n",
" Affiliations_merged \n",
"2430154 UNIVERSITAT POLITECNICA DE VALENCIA \\\n",
"2430132 SHANGHAITECH UNIVERSITY \n",
"2430139 SHANGHAI UNIVERSITY \n",
"2430146 SHANGHAI UNIVERSITY \n",
"2430125 HUZHOU UNIVERSITY \n",
"2430113 SUZHOU UNIVERSITY OF SCIENCE & TECHNOLOGY \n",
"2430118 UNIVERSITY OF MILAN \n",
"2430123 HONG KONG POLYTECHNIC UNIVERSITY \n",
"2430111 UNIVERSITY OF PANNONIA \n",
"2430107 SHENYANG UNIVERSITY \n",
"\n",
" Address Country \n",
"2430154 Univ Politecn Valencia, European Inst Innovat... Spain \\\n",
"2430132 ShanghaiTech Univ, Shanghai Inst Adv Immunoch... China \n",
"2430139 Shanghai Ocean Univ, Coll Fisheries & Life Sc... China \n",
"2430146 Shanghai Jiao Tong Univ, Ruijin Hosp, Sch Med... China \n",
"2430125 Huzhou Univ, Sch Informat Engn, Huzhou 313000... China \n",
"2430113 Suzhou Univ Sci & Technol, Sch Elect & Inform... China \n",
"2430118 Politecn Milan, Dept Mech Engn, Milan, Italy; Italy \n",
"2430123 Hong Kong Polytech Univ, Dept Comp, Hong Kong... China \n",
"2430111 Univ Pannonia, Dept Elect Engn & Informat Sys... Hungary \n",
"2430107 Shenyang Univ Technol, Sch Elect Engn, Dept B... China \n",
"\n",
" City Country_Type Institution levehnstein \n",
"2430154 Valencia EU UNIV POLITECN VALENCIA 13 \n",
"2430132 Shanghai China SHANGHAITECH UNIV 6 \n",
"2430139 Shanghai China SHANGHAI OCEAN UNIV 6 \n",
"2430146 Meda China SHANGHAI JIAO TONG UNIV 6 \n",
"2430125 Huzhou China HUZHOU UNIV 6 \n",
"2430113 Suzhou China SUZHOU UNIV SCI & TECHNOL 16 \n",
"2430118 Milano EU POLITECN MILAN 18 \n",
"2430123 Hong Kong China HONG KONG POLYTECH UNIV 9 \n",
"2430111 Veszprém EU UNIV PANNONIA 9 \n",
"2430107 Shenyang China SHENYANG UNIV TECHNOL 12 "
]
},
"execution_count": 133,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"affiliations = affiliations.sort_values(by=[record_col,\"Affiliations\",\"levehnstein\"], ascending=[False,False,True])\n",
"affiliations_merge = affiliations.drop_duplicates(subset=[record_col,\"Affiliations\"])\n",
"affiliations_merge.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"WoS Categories\n",
" Engineering, Electrical & Electronic 1703\n",
"Computer Science, Artificial Intelligence 1366\n",
"Computer Science, Information Systems 973\n",
" Telecommunications 834\n",
" Imaging Science & Photographic Technology 762\n",
" ... \n",
" Crystallography 1\n",
"Mining & Mineral Processing 1\n",
" Art 1\n",
"Archaeology 1\n",
"Physics, Mathematical 1\n",
"Name: count, Length: 379, dtype: int64"
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wos_cat = wos.groupby(record_col)[\"WoS Categories\"].apply(lambda x: x.str.split(';')).explode().reset_index().drop(columns=\"level_1\")\n",
"wos_cat[\"WoS Categories\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Research Areas\n",
"Engineering 3740\n",
"Computer Science 3466\n",
"Telecommunications 888\n",
"Imaging Science & Photographic Technology 779\n",
"Remote Sensing 716\n",
" ... \n",
"Otorhinolaryngology 1\n",
"Medical Ethics 1\n",
"Anesthesiology 1\n",
"Biomedical Social Sciences 1\n",
"History & Philosophy of Science 1\n",
"Name: count, Length: 141, dtype: int64"
]
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wos_areas = wos.groupby(record_col)[\"Research Areas\"].apply(lambda x: x.str.split(';')).explode().reset_index().drop(columns=\"level_1\")\n",
"wos_areas[\"Research Areas\"] = wos_areas[\"Research Areas\"].str.strip()\n",
"wos_areas[\"Research Areas\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Research Areas\n",
"Engineering 3740\n",
"Computer Science 3466\n",
"Telecommunications 888\n",
"Imaging Science & Photographic Technology 779\n",
"Remote Sensing 716\n",
" ... \n",
"Otorhinolaryngology 1\n",
"Medical Ethics 1\n",
"Anesthesiology 1\n",
"Biomedical Social Sciences 1\n",
"History & Philosophy of Science 1\n",
"Name: count, Length: 141, dtype: int64"
]
},
"execution_count": 93,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wos_areas[\"Research Areas\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['Domain_English', 'Field_English', 'SubField_English']"
]
},
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[c for c in wos.columns if \"_English\" in c]"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {},
"outputs": [],
"source": [
"import seaborn as sns\n",
"from matplotlib.ticker import MaxNLocator\n",
"import math"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [],
"source": [
"wos = wos[((wos[\"Publication Year\"]<2023) & (~wos['Domain_English'].isna()))]\n",
"\n",
"metrix_levels = [c for c in wos.columns if \"_English\" in c]\n",
"for m in metrix_levels:\n",
" wos[m] = wos[m].replace({\"article-level classification\":\"Miscellaneous\"})\n"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Publication Type</th>\n",
" <th>Authors</th>\n",
" <th>Book Authors</th>\n",
" <th>Book Editors</th>\n",
" <th>Book Group Authors</th>\n",
" <th>Author Full Names</th>\n",
" <th>Book Author Full Names</th>\n",
" <th>Group Authors</th>\n",
" <th>Article Title</th>\n",
" <th>Source Title</th>\n",
" <th>...</th>\n",
" <th>Web of Science Record</th>\n",
" <th>issn_var</th>\n",
" <th>issn</th>\n",
" <th>Domain_English</th>\n",
" <th>Field_English</th>\n",
" <th>SubField_English</th>\n",
" <th>2.00 SEQ</th>\n",
" <th>Source_title</th>\n",
" <th>srcid</th>\n",
" <th>issn_type</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>J</td>\n",
" <td>Salucci, M; Arrebola, M; Shan, T; Li, MK</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Salucci, Marco; Arrebola, Manuel; Shan, Tao; L...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Artificial Intelligence: New Frontiers in Real...</td>\n",
" <td>IEEE TRANSACTIONS ON ANTENNAS AND PROPAGATION</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>issn</td>\n",
" <td>0018926x</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Information &amp; Communication Technologies</td>\n",
" <td>Networking &amp; Telecommunications</td>\n",
" <td>37</td>\n",
" <td>IEEE Transactions on Antennas and Propagation</td>\n",
" <td>1.733700e+04</td>\n",
" <td>issn1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9714</th>\n",
" <td>J</td>\n",
" <td>Huang, Y; Fu, ZT; Franzke, CLE</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Huang, Yu; Fu, Zuntao; Franzke, Christian L. E.</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Detecting causality from time series in a mach...</td>\n",
" <td>CHAOS</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>issn</td>\n",
" <td>10541500</td>\n",
" <td>Natural Sciences</td>\n",
" <td>Physics &amp; Astronomy</td>\n",
" <td>Fluids &amp; Plasmas</td>\n",
" <td>170</td>\n",
" <td>Chaos</td>\n",
" <td>2.743000e+04</td>\n",
" <td>issn2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9697</th>\n",
" <td>J</td>\n",
" <td>Feng, DC; Cetiner, B; Kakavand, MRA; Taciroglu, E</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Feng, De-Cheng; Cetiner, Barbaros; Kakavand, M...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Data-Driven Approach to Predict the Plastic Hi...</td>\n",
" <td>JOURNAL OF STRUCTURAL ENGINEERING</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>issn</td>\n",
" <td>07339445</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Engineering</td>\n",
" <td>Civil Engineering</td>\n",
" <td>23</td>\n",
" <td>Journal of Structural Engineering (United States)</td>\n",
" <td>1.630500e+04</td>\n",
" <td>issn1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9699</th>\n",
" <td>J</td>\n",
" <td>Zhao, YL; Dong, S; Jiang, FY; Soares, CG</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Zhao, Yuliang; Dong, Sheng; Jiang, Fengyuan; G...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>System Reliability Analysis of an Offshore Jac...</td>\n",
" <td>JOURNAL OF OCEAN UNIVERSITY OF CHINA</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>issn</td>\n",
" <td>16725182</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Agriculture, Fisheries &amp; Forestry</td>\n",
" <td>Fisheries</td>\n",
" <td>3</td>\n",
" <td>Journal of Ocean University of China</td>\n",
" <td>6.100153e+09</td>\n",
" <td>issn2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9701</th>\n",
" <td>J</td>\n",
" <td>Li, XH; Yang, DK; Yang, JS; Zheng, G; Han, GQ;...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Li, Xiaohui; Yang, Dongkai; Yang, Jingsong; Zh...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Analysis of coastal wind speed retrieval from ...</td>\n",
" <td>REMOTE SENSING OF ENVIRONMENT</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>issn</td>\n",
" <td>00344257</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Engineering</td>\n",
" <td>Geological &amp; Geomatics Engineering</td>\n",
" <td>26</td>\n",
" <td>Remote Sensing of Environment</td>\n",
" <td>1.250300e+04</td>\n",
" <td>issn1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3066</th>\n",
" <td>J</td>\n",
" <td>He, Q; Zha, C; Song, W; Hao, ZZ; Du, YL; Liott...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>He, Qi; Zha, Cheng; Song, Wei; Hao, Zengzhou; ...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Improved Particle Swarm Optimization for Sea S...</td>\n",
" <td>ENERGIES</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>eissn</td>\n",
" <td>19961073</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Enabling &amp; Strategic Technologies</td>\n",
" <td>Energy</td>\n",
" <td>14</td>\n",
" <td>Energies</td>\n",
" <td>6.293200e+04</td>\n",
" <td>issn1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5097</th>\n",
" <td>J</td>\n",
" <td>Hasan, MM; Popp, J; Olah, J</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Hasan, Md Morshadul; Popp, Jozsef; Olah, Judit</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Current landscape and influence of big data on...</td>\n",
" <td>JOURNAL OF BIG DATA</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>eissn</td>\n",
" <td>21961115</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Information &amp; Communication Technologies</td>\n",
" <td>Artificial Intelligence &amp; Image Processing</td>\n",
" <td>31</td>\n",
" <td>Journal of Big Data</td>\n",
" <td>2.110079e+10</td>\n",
" <td>issn1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11369</th>\n",
" <td>J</td>\n",
" <td>Li, Y; Cheng, G; Pang, YS; Kuai, M</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Li, Yong; Cheng, Gang; Pang, Yusong; Kuai, Moshen</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Planetary Gear Fault Diagnosis via Feature Ima...</td>\n",
" <td>SENSORS</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>eissn</td>\n",
" <td>14248220</td>\n",
" <td>Natural Sciences</td>\n",
" <td>Chemistry</td>\n",
" <td>Analytical Chemistry</td>\n",
" <td>149</td>\n",
" <td>Sensors (Switzerland)</td>\n",
" <td>1.301240e+05</td>\n",
" <td>issn1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11368</th>\n",
" <td>J</td>\n",
" <td>Zeng, R; Rossiter, DG; Zhang, JP; Cai, K; Gao,...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Zeng, Rong; Rossiter, David G.; Zhang, Jiapeng...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>How Well Can Reflectance Spectroscopy Allocate...</td>\n",
" <td>AGRONOMY-BASEL</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>eissn</td>\n",
" <td>20734395</td>\n",
" <td>Natural Sciences</td>\n",
" <td>Biology</td>\n",
" <td>Plant Biology &amp; Botany</td>\n",
" <td>147</td>\n",
" <td>Agronomy</td>\n",
" <td>2.110045e+10</td>\n",
" <td>issn1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11362</th>\n",
" <td>J</td>\n",
" <td>Jia, Y; Jin, SG; Savi, P; Gao, Y; Tang, J; Che...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Jia, Yan; Jin, Shuanggen; Savi, Patrizia; Gao,...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>GNSS-R Soil Moisture Retrieval Based on a XGbo...</td>\n",
" <td>REMOTE SENSING</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>eissn</td>\n",
" <td>20724292</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Engineering</td>\n",
" <td>Geological &amp; Geomatics Engineering</td>\n",
" <td>26</td>\n",
" <td>Remote Sensing</td>\n",
" <td>8.643000e+04</td>\n",
" <td>issn1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>8592 rows × 81 columns</p>\n",
"</div>"
],
"text/plain": [
" Publication Type Authors \n",
"0 J Salucci, M; Arrebola, M; Shan, T; Li, MK \\\n",
"9714 J Huang, Y; Fu, ZT; Franzke, CLE \n",
"9697 J Feng, DC; Cetiner, B; Kakavand, MRA; Taciroglu, E \n",
"9699 J Zhao, YL; Dong, S; Jiang, FY; Soares, CG \n",
"9701 J Li, XH; Yang, DK; Yang, JS; Zheng, G; Han, GQ;... \n",
"... ... ... \n",
"3066 J He, Q; Zha, C; Song, W; Hao, ZZ; Du, YL; Liott... \n",
"5097 J Hasan, MM; Popp, J; Olah, J \n",
"11369 J Li, Y; Cheng, G; Pang, YS; Kuai, M \n",
"11368 J Zeng, R; Rossiter, DG; Zhang, JP; Cai, K; Gao,... \n",
"11362 J Jia, Y; Jin, SG; Savi, P; Gao, Y; Tang, J; Che... \n",
"\n",
" Book Authors Book Editors Book Group Authors \n",
"0 NaN NaN NaN \\\n",
"9714 NaN NaN NaN \n",
"9697 NaN NaN NaN \n",
"9699 NaN NaN NaN \n",
"9701 NaN NaN NaN \n",
"... ... ... ... \n",
"3066 NaN NaN NaN \n",
"5097 NaN NaN NaN \n",
"11369 NaN NaN NaN \n",
"11368 NaN NaN NaN \n",
"11362 NaN NaN NaN \n",
"\n",
" Author Full Names \n",
"0 Salucci, Marco; Arrebola, Manuel; Shan, Tao; L... \\\n",
"9714 Huang, Yu; Fu, Zuntao; Franzke, Christian L. E. \n",
"9697 Feng, De-Cheng; Cetiner, Barbaros; Kakavand, M... \n",
"9699 Zhao, Yuliang; Dong, Sheng; Jiang, Fengyuan; G... \n",
"9701 Li, Xiaohui; Yang, Dongkai; Yang, Jingsong; Zh... \n",
"... ... \n",
"3066 He, Qi; Zha, Cheng; Song, Wei; Hao, Zengzhou; ... \n",
"5097 Hasan, Md Morshadul; Popp, Jozsef; Olah, Judit \n",
"11369 Li, Yong; Cheng, Gang; Pang, Yusong; Kuai, Moshen \n",
"11368 Zeng, Rong; Rossiter, David G.; Zhang, Jiapeng... \n",
"11362 Jia, Yan; Jin, Shuanggen; Savi, Patrizia; Gao,... \n",
"\n",
" Book Author Full Names Group Authors \n",
"0 NaN NaN \\\n",
"9714 NaN NaN \n",
"9697 NaN NaN \n",
"9699 NaN NaN \n",
"9701 NaN NaN \n",
"... ... ... \n",
"3066 NaN NaN \n",
"5097 NaN NaN \n",
"11369 NaN NaN \n",
"11368 NaN NaN \n",
"11362 NaN NaN \n",
"\n",
" Article Title \n",
"0 Artificial Intelligence: New Frontiers in Real... \\\n",
"9714 Detecting causality from time series in a mach... \n",
"9697 Data-Driven Approach to Predict the Plastic Hi... \n",
"9699 System Reliability Analysis of an Offshore Jac... \n",
"9701 Analysis of coastal wind speed retrieval from ... \n",
"... ... \n",
"3066 Improved Particle Swarm Optimization for Sea S... \n",
"5097 Current landscape and influence of big data on... \n",
"11369 Planetary Gear Fault Diagnosis via Feature Ima... \n",
"11368 How Well Can Reflectance Spectroscopy Allocate... \n",
"11362 GNSS-R Soil Moisture Retrieval Based on a XGbo... \n",
"\n",
" Source Title ... \n",
"0 IEEE TRANSACTIONS ON ANTENNAS AND PROPAGATION ... \\\n",
"9714 CHAOS ... \n",
"9697 JOURNAL OF STRUCTURAL ENGINEERING ... \n",
"9699 JOURNAL OF OCEAN UNIVERSITY OF CHINA ... \n",
"9701 REMOTE SENSING OF ENVIRONMENT ... \n",
"... ... ... \n",
"3066 ENERGIES ... \n",
"5097 JOURNAL OF BIG DATA ... \n",
"11369 SENSORS ... \n",
"11368 AGRONOMY-BASEL ... \n",
"11362 REMOTE SENSING ... \n",
"\n",
" Web of Science Record issn_var issn Domain_English \n",
"0 0 issn 0018926x Applied Sciences \\\n",
"9714 0 issn 10541500 Natural Sciences \n",
"9697 0 issn 07339445 Applied Sciences \n",
"9699 0 issn 16725182 Applied Sciences \n",
"9701 0 issn 00344257 Applied Sciences \n",
"... ... ... ... ... \n",
"3066 0 eissn 19961073 Applied Sciences \n",
"5097 0 eissn 21961115 Applied Sciences \n",
"11369 0 eissn 14248220 Natural Sciences \n",
"11368 0 eissn 20734395 Natural Sciences \n",
"11362 0 eissn 20724292 Applied Sciences \n",
"\n",
" Field_English \n",
"0 Information & Communication Technologies \\\n",
"9714 Physics & Astronomy \n",
"9697 Engineering \n",
"9699 Agriculture, Fisheries & Forestry \n",
"9701 Engineering \n",
"... ... \n",
"3066 Enabling & Strategic Technologies \n",
"5097 Information & Communication Technologies \n",
"11369 Chemistry \n",
"11368 Biology \n",
"11362 Engineering \n",
"\n",
" SubField_English 2.00 SEQ \n",
"0 Networking & Telecommunications 37 \\\n",
"9714 Fluids & Plasmas 170 \n",
"9697 Civil Engineering 23 \n",
"9699 Fisheries 3 \n",
"9701 Geological & Geomatics Engineering 26 \n",
"... ... ... \n",
"3066 Energy 14 \n",
"5097 Artificial Intelligence & Image Processing 31 \n",
"11369 Analytical Chemistry 149 \n",
"11368 Plant Biology & Botany 147 \n",
"11362 Geological & Geomatics Engineering 26 \n",
"\n",
" Source_title srcid \n",
"0 IEEE Transactions on Antennas and Propagation 1.733700e+04 \\\n",
"9714 Chaos 2.743000e+04 \n",
"9697 Journal of Structural Engineering (United States) 1.630500e+04 \n",
"9699 Journal of Ocean University of China 6.100153e+09 \n",
"9701 Remote Sensing of Environment 1.250300e+04 \n",
"... ... ... \n",
"3066 Energies 6.293200e+04 \n",
"5097 Journal of Big Data 2.110079e+10 \n",
"11369 Sensors (Switzerland) 1.301240e+05 \n",
"11368 Agronomy 2.110045e+10 \n",
"11362 Remote Sensing 8.643000e+04 \n",
"\n",
" issn_type \n",
"0 issn1 \n",
"9714 issn2 \n",
"9697 issn1 \n",
"9699 issn2 \n",
"9701 issn1 \n",
"... ... \n",
"3066 issn1 \n",
"5097 issn1 \n",
"11369 issn1 \n",
"11368 issn1 \n",
"11362 issn1 \n",
"\n",
"[8592 rows x 81 columns]"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wos"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['Domain_English', 'Field_English', 'SubField_English']"
]
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"metrix_levels"
]
},
{
"cell_type": "code",
2 years ago
"execution_count": 101,
2 years ago
"metadata": {},
"outputs": [],
"source": [
2 years ago
"outdir=\"wos_processed_data\""
]
},
{
"cell_type": "code",
"execution_count": 134,
"outputs": [],
"source": [
2 years ago
"os.makedirs(outdir, exist_ok=True)\n",
"\n",
"wos.to_excel(f\"{outdir}/wos_processed.xlsx\", index=False)\n",
"\n",
"locations.drop(columns=\"Addresses\").to_excel(f\"{outdir}/wos_addresses.xlsx\", index=False)\n",
"\n",
"affiliations_merge.to_excel(f\"{outdir}/wos_affiliations.xlsx\", index=False)\n",
"\n",
"author_locations.to_excel(f\"{outdir}/wos_author_locations.xlsx\", index=False)\n",
"\n",
2 years ago
"univ_locations.to_excel(f\"{outdir}/wos_univ_locations.xlsx\", index=False)\n",
"mode_final.to_excel(f\"{outdir}/wos_univ_locations_v2.xlsx\", index=False)"
],
"metadata": {
"collapsed": false
}
2 years ago
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Domain"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Domain_English</th>\n",
" <th>UT (Unique WOS ID)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Applied Sciences</td>\n",
" <td>5379</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Natural Sciences</td>\n",
" <td>1649</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Health Sciences</td>\n",
" <td>1106</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Economic &amp; Social Sciences</td>\n",
" <td>289</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Miscellaneous</td>\n",
" <td>156</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Arts &amp; Humanities</td>\n",
" <td>13</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Domain_English UT (Unique WOS ID)\n",
"0 Applied Sciences 5379\n",
"5 Natural Sciences 1649\n",
"3 Health Sciences 1106\n",
"2 Economic & Social Sciences 289\n",
"4 Miscellaneous 156\n",
"1 Arts & Humanities 13"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"group = 'Domain_English'\n",
"data = wos.groupby(group, as_index=False)[record_col].nunique().sort_values(ascending=False, by=record_col)\n",
"data"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: xlabel='UT (Unique WOS ID)', ylabel='Domain_English'>"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.barplot(data, x=record_col, y=group)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"# group = ['Publication Year','Domain_English']\n",
"# data = wos.groupby(group, as_index=False)[record_col].nunique().sort_values(ascending=False, by=group+[record_col])\n",
"# data"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Publication Year</th>\n",
" <th>Domain_English</th>\n",
" <th>UT (Unique WOS ID)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>65</th>\n",
" <td>2022.0</td>\n",
" <td>Natural Sciences</td>\n",
" <td>524</td>\n",
" </tr>\n",
" <tr>\n",
" <th>64</th>\n",
" <td>2022.0</td>\n",
" <td>Miscellaneous</td>\n",
" <td>41</td>\n",
" </tr>\n",
" <tr>\n",
" <th>63</th>\n",
" <td>2022.0</td>\n",
" <td>Health Sciences</td>\n",
" <td>368</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62</th>\n",
" <td>2022.0</td>\n",
" <td>Economic &amp; Social Sciences</td>\n",
" <td>106</td>\n",
" </tr>\n",
" <tr>\n",
" <th>61</th>\n",
" <td>2022.0</td>\n",
" <td>Arts &amp; Humanities</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2012.0</td>\n",
" <td>Miscellaneous</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2012.0</td>\n",
" <td>Health Sciences</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2012.0</td>\n",
" <td>Economic &amp; Social Sciences</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2012.0</td>\n",
" <td>Arts &amp; Humanities</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2012.0</td>\n",
" <td>Applied Sciences</td>\n",
" <td>21</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>66 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" Publication Year Domain_English UT (Unique WOS ID)\n",
"65 2022.0 Natural Sciences 524\n",
"64 2022.0 Miscellaneous 41\n",
"63 2022.0 Health Sciences 368\n",
"62 2022.0 Economic & Social Sciences 106\n",
"61 2022.0 Arts & Humanities 4\n",
".. ... ... ...\n",
"4 2012.0 Miscellaneous 3\n",
"3 2012.0 Health Sciences 2\n",
"2 2012.0 Economic & Social Sciences 0\n",
"1 2012.0 Arts & Humanities 0\n",
"0 2012.0 Applied Sciences 21\n",
"\n",
"[66 rows x 3 columns]"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"group = ['Publication Year','Domain_English']\n",
"data = wos.groupby(group)[record_col].nunique().unstack(fill_value=0).stack().reset_index().rename(columns={0:record_col}).sort_values(ascending=False, by=group+[record_col])\n",
"data"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x1909ff98d30>"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"g=sns.lineplot(data.sort_values(ascending=True, by=group[-1]),y=record_col,x=group[0], hue=group[-1])\n",
"g.set(xticks=list(range(2012,2022+1,2)))\n",
"g.legend(title=None)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Field"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Publication Year</th>\n",
" <th>Domain_English</th>\n",
" <th>Field_English</th>\n",
" <th>UT (Unique WOS ID)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>176</th>\n",
" <td>2022.0</td>\n",
" <td>Natural Sciences</td>\n",
" <td>Physics &amp; Astronomy</td>\n",
" <td>205</td>\n",
" </tr>\n",
" <tr>\n",
" <th>175</th>\n",
" <td>2022.0</td>\n",
" <td>Natural Sciences</td>\n",
" <td>Mathematics &amp; Statistics</td>\n",
" <td>61</td>\n",
" </tr>\n",
" <tr>\n",
" <th>174</th>\n",
" <td>2022.0</td>\n",
" <td>Natural Sciences</td>\n",
" <td>Earth &amp; Environmental Sciences</td>\n",
" <td>134</td>\n",
" </tr>\n",
" <tr>\n",
" <th>173</th>\n",
" <td>2022.0</td>\n",
" <td>Natural Sciences</td>\n",
" <td>Chemistry</td>\n",
" <td>81</td>\n",
" </tr>\n",
" <tr>\n",
" <th>172</th>\n",
" <td>2022.0</td>\n",
" <td>Natural Sciences</td>\n",
" <td>Biology</td>\n",
" <td>43</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2012.0</td>\n",
" <td>Miscellaneous</td>\n",
" <td>Miscellaneous</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2012.0</td>\n",
" <td>Health Sciences</td>\n",
" <td>Clinical Medicine</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2012.0</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Information &amp; Communication Technologies</td>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2012.0</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Engineering</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2012.0</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Agriculture, Fisheries &amp; Forestry</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>177 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" Publication Year Domain_English \n",
"176 2022.0 Natural Sciences \\\n",
"175 2022.0 Natural Sciences \n",
"174 2022.0 Natural Sciences \n",
"173 2022.0 Natural Sciences \n",
"172 2022.0 Natural Sciences \n",
".. ... ... \n",
"4 2012.0 Miscellaneous \n",
"3 2012.0 Health Sciences \n",
"2 2012.0 Applied Sciences \n",
"1 2012.0 Applied Sciences \n",
"0 2012.0 Applied Sciences \n",
"\n",
" Field_English UT (Unique WOS ID) \n",
"176 Physics & Astronomy 205 \n",
"175 Mathematics & Statistics 61 \n",
"174 Earth & Environmental Sciences 134 \n",
"173 Chemistry 81 \n",
"172 Biology 43 \n",
".. ... ... \n",
"4 Miscellaneous 3 \n",
"3 Clinical Medicine 2 \n",
"2 Information & Communication Technologies 14 \n",
"1 Engineering 5 \n",
"0 Agriculture, Fisheries & Forestry 2 \n",
"\n",
"[177 rows x 4 columns]"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"group = ['Publication Year',\"Domain_English\",'Field_English']\n",
"data = wos.groupby(group, as_index=False)[record_col].nunique().sort_values(ascending=False, by=group+[record_col])\n",
"data"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"# g = sns.FacetGrid(data, col=\"Domain_English\", col_wrap=3, height=5)\n",
"# g.map_dataframe(sns.lineplot,x=group[0],y=record_col,hue=group[-1])\n",
"# g.set_titles(col_template=\"{col_name}\")\n",
"# g.set(xticks=list(range(2012,2022+1,2)))\n",
"# # g.add_legend()"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHHCAYAAACle7JuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABg30lEQVR4nO3deVwU9f8H8NdyLecugpxyCOKFgLdJh7fhmWem1k88vvXNNDUt09IUyzzKTE2rb9/SLM3yvsojFTxS80KUQ0VRUS5R2eWQBXbn9wey31ZAF9xlWPb1fDz2kTszO/OeCdyXM+/5jEQQBAFEREREJshC7AKIiIiIqotBhoiIiEwWgwwRERGZLAYZIiIiMlkMMkRERGSyGGSIiIjIZDHIEBERkclikCEiIiKTxSBDREREJotBhojKkUgkmDt3rmjbj46OhkQiQXR0tHba6NGj0bBhQ9FqIqLaiUGGqA5bs2YNJBIJJBIJjh49Wm6+IAjw9fWFRCJBv379RKiQiOjpWIldABEZn62tLdavX4/nn39eZ3pMTAxu3boFqVSqM/3BgwewsuJfD0RU+/GMDJEZ6NOnDzZu3IiSkhKd6evXr0fbtm3h6empM93W1pZBhohMAoMMkRkYMWIE7t69i/3792unFRUVYdOmTRg5cmS55R/tkcnNzcWUKVPQsGFDSKVSuLu7o2fPnjh79qzO506ePIk+ffqgXr16cHBwQFhYGJYtW6azTFJSEoYOHQoXFxfY2tqiXbt22LFjR7X26/PPP8ezzz4LV1dX2NnZoW3btti0aVOF+zNx4kRs27YNISEhkEqlaNGiBfbs2VNu2du3b2Ps2LHw8PDQLvfDDz+UWy4rKwvjxo2Dh4cHbG1t0bJlS/z44486y1TU6wMA169fh0QiwZo1a7TTMjIyMGbMGPj4+EAqlcLLywsDBgzA9evXq3VsiMwF/8lFZAYaNmyI8PBw/PLLL+jduzcA4I8//oBCocDw4cOxfPnyx37+zTffxKZNmzBx4kQEBwfj7t27OHr0KBITE9GmTRsAwP79+9GvXz94eXlh8uTJ8PT0RGJiInbt2oXJkycDAOLj4/Hcc8+hQYMGmDFjBhwcHPDbb79h4MCB2Lx5MwYNGlSl/Vq2bBleeuklvPrqqygqKsKGDRvw8ssvY9euXejbt6/OskePHsWWLVvw1ltvwcnJCcuXL8eQIUNw8+ZNuLq6AgAyMzPRsWNHbfBxc3PDH3/8gXHjxkGpVGLKlCkASi+9denSBcnJyZg4cSICAgKwceNGjB49Gjk5Odr9rYohQ4YgPj4eb7/9Nho2bIisrCzs378fN2/eZJMz0eMIRFRnrV69WgAgnDp1Svjqq68EJycnoaCgQBAEQXj55ZeFrl27CoIgCP7+/kLfvn21nwMgzJkzR/teLpcLEyZMqHQ7JSUlQkBAgODv7y/cv39fZ55Go9H+uXv37kJoaKhQWFioM//ZZ58VGjdurJ126NAhAYBw6NAh7bTIyEjB399fZ91l+1KmqKhICAkJEbp166YzHYBgY2MjJCcna6edP39eACCsWLFCO23cuHGCl5eXkJ2drfP54cOHC3K5XLu9L7/8UgAg/PzzzzrbDg8PFxwdHQWlUlnpfgiCIKSkpAgAhNWrVwuCIAj3798XAAifffaZQERVw0tLRGZi2LBhePDgAXbt2oXc3Fzs2rWrwstKFXF2dsbJkyeRlpZW4fxz584hJSUFU6ZMgbOzs848iUQCALh37x4OHjyIYcOGITc3F9nZ2cjOzsbdu3cRERGBK1eu4Pbt21XaJzs7O+2f79+/D4VCgRdeeKHcJS8A6NGjBxo1aqR9HxYWBplMhmvXrgEovYNr8+bN6N+/PwRB0NaXnZ2NiIgIKBQK7Xp///13eHp6YsSIEdr1WVtbY9KkScjLy0NMTEyV98PGxgbR0dG4f/9+lT5LZO54aYnITLi5uaFHjx5Yv349CgoKoFarMXToUL0+u3jxYkRGRsLX1xdt27ZFnz59MGrUKAQGBgIArl69CgAICQmpdB3JyckQBAGzZ8/G7NmzK1wmKysLDRo00Hufdu3ahU8++QSxsbFQqVTa6WXh6Z/8/PzKTatXr542ONy5cwc5OTn4z3/+g//85z+V1gcAN27cQOPGjWFhoftvwebNm2vnV4VUKsWiRYswbdo0eHh4oGPHjujXrx9GjRpVrhGbiHQxyBCZkZEjR+L1119HRkYGevfuXe7sSWWGDRuGF154AVu3bsW+ffvw2WefYdGiRdiyZYu25+ZJNBoNAODdd99FREREhcsEBQXptS4AOHLkCF566SV06tQJq1atgpeXF6ytrbF69WqsX7++3PKWlpYVrkcQBJ36XnvtNURGRla4bFhYmN71ARUHKgBQq9Xlpk2ZMgX9+/fHtm3bsHfvXsyePRsLFizAwYMH0bp16yptl8icMMgQmZFBgwbh3//+N06cOIFff/21Sp/18vLCW2+9hbfeegtZWVlo06YN5s+fj969e2sv2Vy8eBE9evSo8PNlZ2+sra0rXaYqNm/eDFtbW+zdu1dnHJzVq1dXa31ubm5wcnKCWq1+Yn3+/v6Ii4uDRqPROSuTlJSknQ+UnvEBgJycHJ3PV3bGplGjRpg2bRqmTZuGK1euoFWrVliyZAl+/vnnau0TkTlgjwyRGXF0dMTXX3+NuXPnon///np9Rq1WQ6FQ6Exzd3eHt7e39nJOmzZtEBAQgC+//LLcl3bZGQ93d3d06dIF3377LdLT08tt586dO1XaF0tLS0gkEp2zG9evX8e2bduqtJ5/rm/IkCHYvHkzLl68+Nj6+vTpg4yMDJ0wWFJSghUrVsDR0RGdO3cGUBpoLC0tcfjwYZ11rVq1Sud9QUEBCgsLdaY1atQITk5OOpfMiKg8npEhMjOVXTapTG5uLnx8fDB06FC0bNkSjo6O+PPPP3Hq1CksWbIEAGBhYYGvv/4a/fv3R6tWrTBmzBh4eXkhKSkJ8fHx2Lt3LwBg5cqVeP755xEaGorXX38dgYGByMzMxPHjx3Hr1i2cP39e77r69u2LL774Ar169cLIkSORlZWFlStXIigoCHFxcVXaxzILFy7EoUOH8Mwzz+D1119HcHAw7t27h7Nnz+LPP//EvXv3AABvvPEGvv32W4wePRpnzpxBw4YNsWnTJhw7dgxffvklnJycAAByuRwvv/wyVqxYAYlEgkaNGmHXrl3aXpsyly9fRvfu3TFs2DAEBwfDysoKW7duRWZmJoYPH16tfSEyFwwyRPRY9vb2eOutt7Bv3z5s2bIFGo0GQUFBWLVqFcaPH69dLiIiAocOHUJUVBSWLFkCjUaDRo0a4fXXX9cuExwcjNOnTyMqKgpr1qzB3bt34e7ujtatW+Ojjz6qUl3dunXD999/j4ULF2LKlCkICAjAokWLcP369WoHGQ8PD/z999+YN28etmzZglWrVsHV1RUtWrTAokWLtMvZ2dkhOjoaM2bMwI8//gilUommTZti9erVGD16tM46V6xYgeLiYnzzzTeQSqUYNmwYPvvsM53GaF9fX4wYMQIHDhzATz/9BCsrKzRr1gy//fYbhgwZUq19ITIXEqHsvC8RERGRiWGPDBEREZksBhkiIiIyWQwyREREZLIYZIiIiMhkMcgQERGRyWKQISIiIpNV58eR0Wg0SEtLg5OTU6XPPSEiIqLaRRAE5Obmwtvbu9wDWv+pzgeZtLQ0+Pr6il0GERERVUNqaip8fHwqnV/ng0zZUOGpqamQyWQiV0NERET6UCqV8PX11X6PV6bOB5myy0kymYxBhoiIyMQ8qS2Ezb5ERERkshhkiIiIyGQxyBAREZHJqvM9MvpSq9UoLi4WuwwyQdbW1rC0tBS7DCIis2T2QUYQBGRkZCAnJ0fsUsiEOTs7w9PTk2MVERHVMLMPMmUhxt3dHfb29vwioioRBAEFBQXIysoCAHh5eYlcERGReTHrIKNWq7UhxtXVVexyyETZ2dkBALKysuDu7s7LTERENcism33LemLs7e1FroRMXdnPEPusiIhqllkHmTK8nERPiz9DRETiYJAhIiIik8U
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHHCAYAAABZbpmkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC8AElEQVR4nOzdd1iV5RvA8e9hbxAEAUXBgQriyC0qmgNnmZojUxy5QsvMSsuGZWlDS0vNTNEsm47MPQHDrbkVwRgOUFEBAVnnvL8/iPPzBCgYeA5wf67rXHne8bz3ezDO7fPez/OoFEVREEIIIYSooIz0HYAQQgghRFmSZEcIIYQQFZokO0IIIYSo0CTZEUIIIUSFJsmOEEIIISo0SXaEEEIIUaFJsiOEEEKICk2SHSGEEEJUaJLsCCGEEKJCk2RHCFHudOrUiU6dOj3Wa4aGhqJSqQgNDX2s1xVC/HeS7AhRwaxcuRKVSoWFhQVXr14tsL9Tp040atTokdpevHgxK1eu/I8RPj7Z2dksWLCAZs2aYWdnh4ODA76+vowbN44LFy7oOzwhxGNiou8AhBBlIysri7lz5/Lll1+WWpuLFy+matWqjBw5stTaLEsDBgxg69atDB06lLFjx5KTk8OFCxfYtGkT7dq1o0GDBsVuq2PHjty7dw8zM7MyjFgIURYk2RGigmratCnLli1jxowZuLu76zucIimKQmZmJpaWlqXa7pEjR9i0aRMffvghb775ps6+r776iuTk5BK1Z2RkhIWFRSlGKIR4XOQxlhAV1JtvvolarWbu3LkPPTYkJIQnn3wSFxcXzM3N8fHxYcmSJTrHeHp6cvbsWcLCwlCpVKhUKm3dzHvvvYdKpSrQbv4jtdjYWJ12+vTpw/bt22nRogWWlpYsXbq02HEU16VLlwDw9/cvsM/Y2BgnJyedbVevXmXMmDG4u7tjbm6Ol5cXEydOJDs7Gyi6ZufQoUP06NEDe3t7rKysCAgIICIiQueY/M8nOjqakSNH4uDggL29PaNGjSIjI6NAfN9//z2tWrXCysqKKlWq0LFjR3bs2KFzzNatW+nQoQPW1tbY2trSu3dvzp49q3NMYmIio0aNokaNGpibm+Pm5sbTTz+t8/MQojKQnh0hKigvLy9GjBjBsmXLmD59+gN7d5YsWYKvry9PPfUUJiYm/PHHH7z44otoNBqCg4MB+OKLL5g8eTI2Nja89dZbAFSrVu2RYouMjGTo0KGMHz+esWPHUr9+/WLHUVy1atUC4IcffsDf3x8Tk6J/3V27do1WrVqRnJzMuHHjaNCgAVevXuW3334jIyOjyEdXe/bsoWfPnjRv3px3330XIyMjbcK2b98+WrVqpXP8oEGD8PLyYs6cORw/fpxvv/0WFxcXPv74Y+0xs2bN4r333qNdu3a8//77mJmZcejQIfbs2UP37t0BWL16NUFBQQQGBvLxxx+TkZHBkiVLaN++PX/99Reenp5A3mO8s2fPMnnyZDw9Pblx4wY7d+4kPj5ee4wQlYIihKhQQkJCFEA5cuSIcunSJcXExER56aWXtPsDAgIUX19fnXMyMjIKtBMYGKjUrl1bZ5uvr68SEBBQ4Nh3331XKezXSX4sMTEx2m21atVSAGXbtm0Fji9uHAEBAYXGcT+NRqMEBAQogFKtWjVl6NChyqJFi5S4uLgCx44YMUIxMjJSjhw5Umg7iqIoe/fuVQBl79692u316tVTAgMDtcfk34OXl5fSrVs37bb8z2f06NE6bT/zzDOKk5OT9n1UVJRiZGSkPPPMM4parS40jrt37yoODg7K2LFjdfYnJiYq9vb22u137txRAOXTTz994OckRGUgj7GEqMBq167N8OHD+eabb0hISCjyuPvrZVJSUkhKSiIgIIC///6blJSUUo/Ly8uLwMDAMo1DpVKxfft2Zs+eTZUqVfjxxx8JDg6mVq1aDB48WFuzo9Fo2LBhA3379qVFixaFtlOYEydOEBUVxXPPPcetW7dISkoiKSmJ9PR0unTpQnh4OBqNRuecCRMm6Lzv0KEDt27dIjU1FYANGzag0Wh45513MDLS/fWcH8fOnTtJTk5m6NCh2msmJSVhbGxM69at2bt3L5D3WZqZmREaGsqdO3dK9NkJUdFIsiNEBTdz5kxyc3MfWLsTERFB165dsba2xsHBAWdnZ21Rb1klO48jDnNzc9566y3Onz/PtWvX+PHHH2nTpg2//PILkyZNAuDmzZukpqaWeDh+VFQUAEFBQTg7O+u8vv32W7KysgrEXLNmTZ33VapUAdAmI5cuXcLIyAgfH5+HXvfJJ58scN0dO3Zw48YN7b1//PHHbN26lWrVqtGxY0c++eQTEhMTS3SfQlQEUrMjRAVXu3Ztnn/+eb755humT59eYP+lS5fo0qULDRo0YP78+Xh4eGBmZsaWLVv4/PPPC/ROFKao3g+1Wl3o9sJGXpVGHA/i5ubGkCFDGDBgAL6+vvzyyy//ac6g/Hg+/fRTmjZtWugxNjY2Ou+NjY0LPU5RlBJfd/Xq1bi6uhbYf39t0pQpU+jbty8bNmxg+/btvP3228yZM4c9e/bQrFmzYl9TiPJOkh0hKoGZM2fy/fff6xTC5vvjjz/Iyspi48aNOj0P+Y9D7ldUUpPfQ5GcnIyDg4N2e1xcXLFjLEkc/4WpqSmNGzcmKiqKpKQkXFxcsLOz48yZMyVqp06dOgDY2dnRtWvXUomtTp06aDQazp07V2QClX9dFxeXYl23Tp06vPrqq7z66qtERUXRtGlT5s2bx/fff18qMQtRHshjLCEqgTp16vD888+zdOnSAo8x8nsb7u9dSElJISQkpEA71tbWhc5Pk/8FHB4ert2Wnp7OqlWrih1jSeIojqioKOLj4wtsT05O5sCBA1SpUgVnZ2eMjIzo168ff/zxB0ePHi1wfFG9Ls2bN6dOnTp89tlnpKWlFdh/8+bNEsfcr18/jIyMeP/99wv0ZOXHERgYiJ2dHR999BE5OTlFXjcjI4PMzEydfXXq1MHW1pasrKwSxyZEeSY9O0JUEm+99RarV68mMjISX19f7fbu3btjZmZG3759GT9+PGlpaSxbtgwXF5cCRc3NmzdnyZIlzJ49m7p16+Li4sKTTz5J9+7dqVmzJmPGjOG1117D2NiYFStW4OzsXGjCUZiSxFEcJ0+e5LnnnqNnz5506NABR0dHrl69yqpVq7h27RpffPGFNsH66KOP2LFjBwEBAYwbN46GDRuSkJDAr7/+yp9//qnTW5XPyMiIb7/9lp49e+Lr68uoUaOoXr06V69eZe/evdjZ2fHHH3+UKOa6devy1ltv8cEHH9ChQwf69++Pubk5R44cwd3dnTlz5mBnZ8eSJUsYPnw4TzzxBEOGDNF+zps3b8bf35+vvvqKixcv0qVLFwYNGoSPjw8mJiasX7+e69evM2TIkBJ/nkKUa3odCyaEKHX3Dz3/t6CgIAUoMPR848aNSuPGjRULCwvF09NT+fjjj5UVK1YUGDaemJio9O7dW7G1tVUAneHfx44dU1q3bq2YmZkpNWvWVObPn1/k0PPevXsXGntx4yjO0PPr168rc+fOVQICAhQ3NzfFxMREqVKlivLkk08qv/32W4Hj4+LilBEjRijOzs6Kubm5Urt2bSU4OFjJyspSFKXg0PN8f/31l9K/f3/FyclJMTc3V2rVqqUMGjRI2b17t/aY/KHnN2/e1Dm3sM9HURRlxYoVSrNmzRRzc3OlSpUqSkBAgLJz506dY/bu3asEBgYq9vb2ioWFhVKnTh1l5MiRytGjRxVFUZSkpCQlODhYadCggWJtba3Y29srrVu3Vn755ZcHfm5CVEQqRSlBZZwQQgghRDkjNTtCCCGEqNAk2RFCCCFEhSbJjhBCCCEqNEl2hBBCCFGhSbIjhBBCiApNkh0hhBBCVGgyqSB5a81cu3YNW1vbIqfDF0IIIYRhURSFu3fv4u7ujpFR0f03kuwA165dw8PDQ99hCCGEEOIRXL58mRo1ahS5X5IdwNbWFsj7sOzs7PQcjRBCCCGKIzU1FQ8PD+33eFEk2eH/Kznb2dlJsiO
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"for cat in sorted(data[group[-2]].unique()):\n",
" sub_data = data[data[group[-2]]==cat]\n",
" sub_data = sub_data.complete({group[0]:range(int(data[group[0]].min()), int(data[group[0]].max()) + 1)}\n",
" ,group[-1],fill_value=0)\n",
" g=sns.lineplot(sub_data.sort_values(ascending=True, by=group[-1]),y=record_col,x=group[0], hue=group[-1])\n",
" g.set(xticks=list(range(2012,2022+1,2)))\n",
" g.legend(title=None)\n",
" g.set_title(cat)\n",
" g.yaxis.set_major_locator(MaxNLocator(integer=True))\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# SubField"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Publication Year</th>\n",
" <th>Domain_English</th>\n",
" <th>Field_English</th>\n",
" <th>SubField_English</th>\n",
" <th>UT (Unique WOS ID)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>774</th>\n",
" <td>2022.0</td>\n",
" <td>Natural Sciences</td>\n",
" <td>Physics &amp; Astronomy</td>\n",
" <td>Optics</td>\n",
" <td>56</td>\n",
" </tr>\n",
" <tr>\n",
" <th>773</th>\n",
" <td>2022.0</td>\n",
" <td>Natural Sciences</td>\n",
" <td>Physics &amp; Astronomy</td>\n",
" <td>Nuclear &amp; Particle Physics</td>\n",
" <td>28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>772</th>\n",
" <td>2022.0</td>\n",
" <td>Natural Sciences</td>\n",
" <td>Physics &amp; Astronomy</td>\n",
" <td>Mathematical Physics</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>771</th>\n",
" <td>2022.0</td>\n",
" <td>Natural Sciences</td>\n",
" <td>Physics &amp; Astronomy</td>\n",
" <td>General Physics</td>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>770</th>\n",
" <td>2022.0</td>\n",
" <td>Natural Sciences</td>\n",
" <td>Physics &amp; Astronomy</td>\n",
" <td>Fluids &amp; Plasmas</td>\n",
" <td>21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2012.0</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Information &amp; Communication Technologies</td>\n",
" <td>Artificial Intelligence &amp; Image Processing</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2012.0</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Engineering</td>\n",
" <td>Mechanical Engineering &amp; Transports</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2012.0</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Engineering</td>\n",
" <td>Industrial Engineering &amp; Automation</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2012.0</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Engineering</td>\n",
" <td>Geological &amp; Geomatics Engineering</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2012.0</td>\n",
" <td>Applied Sciences</td>\n",
" <td>Agriculture, Fisheries &amp; Forestry</td>\n",
" <td>Food Science</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>775 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" Publication Year Domain_English \n",
"774 2022.0 Natural Sciences \\\n",
"773 2022.0 Natural Sciences \n",
"772 2022.0 Natural Sciences \n",
"771 2022.0 Natural Sciences \n",
"770 2022.0 Natural Sciences \n",
".. ... ... \n",
"4 2012.0 Applied Sciences \n",
"3 2012.0 Applied Sciences \n",
"2 2012.0 Applied Sciences \n",
"1 2012.0 Applied Sciences \n",
"0 2012.0 Applied Sciences \n",
"\n",
" Field_English \n",
"774 Physics & Astronomy \\\n",
"773 Physics & Astronomy \n",
"772 Physics & Astronomy \n",
"771 Physics & Astronomy \n",
"770 Physics & Astronomy \n",
".. ... \n",
"4 Information & Communication Technologies \n",
"3 Engineering \n",
"2 Engineering \n",
"1 Engineering \n",
"0 Agriculture, Fisheries & Forestry \n",
"\n",
" SubField_English UT (Unique WOS ID) \n",
"774 Optics 56 \n",
"773 Nuclear & Particle Physics 28 \n",
"772 Mathematical Physics 2 \n",
"771 General Physics 14 \n",
"770 Fluids & Plasmas 21 \n",
".. ... ... \n",
"4 Artificial Intelligence & Image Processing 10 \n",
"3 Mechanical Engineering & Transports 1 \n",
"2 Industrial Engineering & Automation 3 \n",
"1 Geological & Geomatics Engineering 1 \n",
"0 Food Science 2 \n",
"\n",
"[775 rows x 5 columns]"
]
},
"execution_count": 68,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"group = ['Publication Year',\"Domain_English\",'Field_English',\"SubField_English\"]\n",
"data = wos.groupby(group, as_index=False)[record_col].nunique().sort_values(ascending=False, by=group+[record_col])\n",
"data"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA1QAAAHHCAYAAAC4DBmZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADAyUlEQVR4nOzdd1yV9f//8cdh76UioCwFEZyZI0eOtI87bWllKakts/GxXP2yTCvT0qxM+7ZQS5s2LS13Re49cIsTxAWIyDzX7w/ifCLQQIHDeN5vt3Orc13v67pe5wLP4XXe7/frbTIMw0BERERERERKzMbaAYiIiIiIiFRWSqhERERERESukRIqERERERGRa6SESkRERERE5BopoRIREREREblGSqhERERERESukRIqERERERGRa6SESkRERERE5BopoRIREREREblGSqhExCpMJhMTJ04s8XGrV6/GZDKxevXqUo9JREREpKSUUIlIqZk7dy4mk6nAw9fXly5durBkyRJrhyciIiJS6uysHYCIVD2TJk0iNDQUwzA4ffo0c+fOpVevXvz444/06dMHgMuXL2Nnp7cgERERqdz014yIlLqePXvSsmVLy/Nhw4ZRu3ZtPvvsM0tC5eTkZK3wREREREqNhvyJSJnz8vLC2dm5QI9UUXOotm7dSs+ePfHw8MDNzY2uXbuybt26Yl3jq6++4sYbb8TZ2ZmaNWty//33c/LkySLbRUVF4eTkROPGjfn222+Jjo4mJCQEAMMwCAkJoV+/foWOzcjIwNPTk0ceeaT4L15ERESqNCVUIlLqUlJSOHv2LGfOnGH37t089thjpKWlcf/991/xmN27d3PzzTezfft2xowZw4QJEzhy5AidO3dm/fr1V73e3LlzGTBgALa2tkyZMoWHHnqIb775hg4dOpCcnGxp99NPPzFw4EDs7e2ZMmUKd9xxB8OGDWPz5s2WNiaTifvvv58lS5Zw/vz5Atf58ccfSU1NverrEBERkepFQ/5EpNR169atwHNHR0c+/vhjbr311ise8/zzz5Odnc0ff/xBvXr1ABg8eDARERGMGTOGNWvWFHlcdnY2Y8eOpXHjxvz222+WoYQdOnSgT58+vPnmm7z00ksAjB8/njp16hAbG4ubmxsAXbt2pXPnzgQHB1vOOXjwYF555RW+/PJLHn30Ucv2Tz/9lJCQEDp06HANd0VERESqIvVQiUipe/fdd1m2bBnLli3j008/pUuXLgwfPpxvvvmmyPa5ubn8+uuv9O/f35JMAfj7+3Pffffxxx9/kJqaWuSxmzZtIikpiREjRhSYl9W7d28aNmzITz/9BMCpU6fYuXMngwcPtiRTAJ06daJJkyYFztmgQQPatGnDggULLNvOnz/PkiVLGDRoECaTqeQ3RURERKokJVQiUupat25Nt27d6NatG4MGDeKnn34iKiqKkSNHkpWVVaj9mTNnSE9PJyIiotC+yMhIzGYzx48fL/JaR48eBSjy2IYNG1r25/83LCysULuitg0ePJjY2FjLcV999RXZ2dk88MADV3rZIiIiUg0poRKRMmdjY0OXLl1ISEjgwIED1g6nWO655x7s7e0tvVSffvopLVu2LDJxExERkepLCZWIlIucnBwA0tLSCu2rVasWLi4u7Nu3r9C+vXv3YmNjQ2BgYJHnzZ/7VNSx+/bts+zP/+/BgwcLtStqm4+PD71792bBggUcPXqU2NhY9U6JiIhIIUqoRKTMZWdn8+uvv+Lg4EBkZGSh/ba2tvznP//h+++/Jz4+3rL99OnTLFy4kA4dOuDh4VHkuVu2bImvry/vvfcemZmZlu1LliwhLi6O3r17AxAQEEDjxo2ZP39+gaRuzZo17Ny5s8hzP/DAA+zZs4fRo0dja2vLPffccy0vX0RERKowVfkTkVK3ZMkS9u7dC0BSUhILFy7kwIEDjBs37oqJ0csvv8yyZcvo0KEDI0aMwM7Ojv/7v/8jMzOTadOmXfFa9vb2TJ06lQcffJBOnTpx7733cvr0ad566y1CQkL473//a2n76quv0q9fP9q3b8+DDz7IhQsXmDVrFo0bNy6y56x3797UqFGDr776ip49e+Lr63udd0ZERESqGiVUIlLqXnjhBcv/Ozk50bBhQ+bMmXPVBXEbNWrE77//zvjx45kyZQpms5k2bdrw6aef0qZNm6teLzo6GhcXF1577TXGjh2Lq6srt99+O1OnTsXLy8vSrm/fvnz22WdMnDiRcePGER4ezty5c5k3bx67d+8udF4HBwcGDhzI7NmzNdxPREREimQyDMOwdhAiItbUvHlzatWqxbJlywrt++9//8tHH31EYmIiLi4uVohOREREKjLNoRKRaiM7O9tSHCPf6tWr2b59O507dy7UPiMjg08//ZQ777xTyZSIiIgUSUP+RKTaOHnyJN26deP+++8nICCAvXv38t577+Hn58ejjz5qaZeUlMTy5cv5+uuvOXfuHE899ZQVoxYREZGKTAmViFQb3t7e3HjjjXz44YecOXMGV1dXevfuzWuvvUaNGjUs7fbs2cOgQYPw9fXl7bffpnnz5tYLWkRERCo0zaESERERERG5RppDJSIiIiIico2UUImIiIiIiFyjKj+Hymw2c+rUKdzd3TGZTNYOR0RERIrBMAwuXrxIQEAANjZl+/2v2WwmKyurTK8hIpWLvb09tra2xWpb5ROqU6dOERgYaO0wRERE5BocP36cunXrltn5s7KyOHLkCGazucyuISKVk5eXF35+fv/aKVPlEyp3d3cg7w3Zw8PDytGIiIhIcaSmphIYGGj5HC8LhmGQkJCAra0tgYGBZd4TJiKVg2EYpKenk5SUBIC/v/9V21f5hCo/o/Tw8FBCJSIiUsmU5XD9nJwc0tPTCQgI0OLdIlKAs7MzkLc2pa+v71WH/+mrGBEREamWcnNzAXBwcLByJCJSEeV/0ZKdnX3VdkqoREREpFpT0SoRKUpx3xuUUImIiIiIiFwjJVQiIiIiUkBISAgzZ860dhgilYISKhEREZFKJjo6GpPJVOjRo0cPa4cmUu1U+Sp/IiIiIlVRjx49iImJKbDN0dHRStGIVF/qoRIRERGphBwdHfHz8yvw8Pb2BiA5OZlHHnmE2rVr4+TkROPGjVm8eLHl2EWLFtGoUSMcHR0JCQlh+vTpV73WsWPH6NevH25ubnh4eDBgwABOnz5doM3LL7+Mr68v7u7uDB8+nHHjxtG8eXMAfvvtN+zt7UlMTCxwzNNPP83NN99cCndDxHrUQyUiIiJC3mKel7NzrXJtZ3vbUqs2aDab6dmzJxcvXuTTTz+lfv367Nmzx7KOzubNmxkwYAATJ05k4MCB/Pnnn4wYMYIaNWoQHR1d5Pnyk6k1a9aQk5PD448/zsCBA1m9ejUACxYs4JVXXmH27Nm0b9+ezz//nOnTpxMaGgpAx44dqVevHp988gmjR48G8kpRL1iwgGnTppXK6xaxFiVUIiIiIsDl7FyiXvjFKtfeM6k7Lg4l+7Ns8eLFuLm5Fdj23HPP0bJlSzZs2EBcXBwNGjQAoF69epY2M2bMoGvXrkyYMAGABg0asGfPHl5//fUiE6oVK1awc+dOjhw5QmBgIADz58+nUaNGbNy4kVatWvHOO+8wbNgwHnzwQQBeeOEFfv31V9LS0iznGTZsGDExMZaE6scffyQjI4MBAwaU6HWLVDQa8iciIiJSCXXp0oVt27YVeDz66KNs27aNunXrWpKpf4qLi6N9+/YFtrVv354DBw5YFjv+Z/vAwEBLMgUQFRWFl5cXcXFxAOzbt4/WrVsXOO6fz6Ojozl48CDr1q0DYO7cuQwYMABXV9eSv3iRCkQ9VCIiIiLkDbvbM6m71a5dUq6uroSFhRU+l7NzaYRU6nx9fenbty8xMTGEhoayZMkSy5BBkcpMCZWIiIgIYDKZSjzsriJq2rQpJ06cYP/+/UX2UkVGRhIbG1tgW2xsLA0aNLDMs/pn++PHj3P8+HFLL9WePXtITk4mKioKgIiICDZu3MjgwYMtx23cuLHQuYYPH869995L3bp1qV+/fqGeMpHKqPK
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAAHHCAYAAABp6x3pAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACVC0lEQVR4nOzdd3zV9fXH8dfNTXKzJ9lkgLJBUBSLtiAWxFm0WilVGeIWlaJWqQNx71VXf5ahrbWu1omDomBFFAFxsWcgZED2Hvd+f39c7oWYwU1yZ/J+Ph55mHzvd5z7pU1ycs73fEyGYRiIiIiIiIgEoCBfByAiIiIiItJZSmhERERERCRgKaEREREREZGApYRGREREREQClhIaEREREREJWEpoREREREQkYCmhERERERGRgKWERkREREREApYSGhERERERCVhKaER6iJycHKZPn+7rMJoxmUzcddddHjn3rl27MJlMLF682CPnd7ef//ssX74ck8nE8uXLfRaTiIhIIFBCIxKAFi9ejMlkYs2aNa2+fsoppzB06NAuX2fJkiUeSzj8ya5du5gxYwZHHXUUYWFhpKamMmbMGObNm9dsv+eeey5gEiQREZGeItjXAYiId2zevJmgoI79DWPJkiU8++yzHktqamtrCQ727behbdu2ccIJJxAeHs6ll15KTk4O+fn5rFu3joceeoj58+c7933uuefo1auXVypdY8aMoba2ltDQUI9fS0REJJApoRHpISwWi69DAMBms9HQ0EBYWBhhYWG+DocnnniCqqoq1q9fT3Z2drPXioqKfBQVBAUF+cX9ERER8XdqORPpIX7+jEZjYyPz58+nX79+hIWFkZiYyC9/+UuWLl0KwPTp03n22WcB+7Mujg+H6upqbrzxRjIzM7FYLAwYMIBHH30UwzCaXddkMjFr1ixeeeUVhgwZgsVi4aOPPnK+9vPqT15eHjNnziQ9PR2LxUKfPn24+uqraWhoAKCkpISbbrqJYcOGERUVRUxMDGeccQbfffddp+7L9u3b6d27d4tkBiA5ObnZ/fvpp59YsWKF816ccsopANx1113N7o2DozVw165dzm2GYXDvvffSu3dvIiIiGDduHD/99FOLY9t6hubrr7/m9NNPJzY2loiICMaOHcvKlSub7VNZWcns2bPJycnBYrGQnJzMhAkTWLduXQfujIiISGBQhUYkgJWXl3PgwIEW2xsbG4947F133cUDDzzAZZddxqhRo6ioqGDNmjWsW7eOCRMmcOWVV7Jv3z6WLl3K3//+92bHGobBb37zGz777DNmzpzJiBEj+Pjjj7n55pvJy8vjiSeeaLb/p59+yuuvv86sWbPo1asXOTk5rca0b98+Ro0aRVlZGVdccQUDBw4kLy+PN998k5qaGkJDQ9mxYwdvv/02v/vd7+jTpw+FhYX89a9/ZezYsWzYsIH09HTXbyCQnZ3Nf//7Xz799FNOPfXUNvd78sknue6664iKiuK2224DICUlpUPXArjzzju59957OfPMMznzzDNZt24dp512mjNha8+nn37KGWecwciRI5k3bx5BQUEsWrSIU089lf/973+MGjUKgKuuuoo333yTWbNmMXjwYIqLi/niiy/YuHEjxx13XIdjFhER8WuGiAScRYsWGUC7H0OGDGl2THZ2tjFt2jTn18OHDzfOOuusdq9z7bXXGq19m3j77bcNwLj33nubbb/gggsMk8lkbNu2zbkNMIKCgoyffvqpxXkAY968ec6vp06dagQFBRnffPNNi31tNpthGIZRV1dnWK3WZq/t3LnTsFgsxt13391sG2AsWrSo3ff4448/GuHh4QZgjBgxwrjhhhuMt99+26iurm6x75AhQ4yxY8e22D5v3rxW75Pj32nnzp2GYRhGUVGRERoaapx11lnO92MYhvHnP//ZAJr9+3z22WcGYHz22WfO99+vXz9j4sSJzY6tqakx+vTpY0yYMMG5LTY21rj22mvbfd8iIiLdhVrORALYs88+y9KlS1t8HHPMMUc8Ni4ujp9++omtW7d2+LpLlizBbDZz/fXXN9t+4403YhgGH374YbPtY8eOZfDgwe2e02az8fbbb3POOedw/PHHt3jd0dJlsVicww2sVivFxcVERUUxYMCATrVUDRkyhPXr13PxxReza9cunnrqKc4991xSUlJ48cUXO3y+9vz3v/+loaGB6667rlmL2uzZs4947Pr169m6dSt/+MMfKC4u5sCBAxw4cIDq6mp+/etf8/nnn2Oz2QD7v+3XX3/Nvn373Bq/iIiIP1LLmUgAGzVqVKu//MfHx7faina4u+++m0mTJtG/f3+GDh3K6aefziWXXOJSMrR7927S09OJjo5utn3QoEHO1w/Xp0+fI55z//79VFRUHHHctM1m46mnnuK5555j586dWK1W52uJiYlHvE5r+vfvz9///nesVisbNmzg/fff5+GHH+aKK66gT58+jB8/vlPn/TnHfenXr1+z7UlJScTHx7d7rCPxnDZtWpv7lJeXEx8fz8MPP8y0adPIzMxk5MiRnHnmmUydOpW+fft28R2IiIj4H1VoRHqoMWPGsH37dhYuXMjQoUP529/+xnHHHcff/vY3t18rPDzcbee6//77mTNnDmPGjOEf//gHH3/8MUuXLmXIkCHOCkVnmc1mhg0bxty5c/nPf/4DwCuvvHLE41obCAA0S7a6yvHeHnnkkVarckuXLiUqKgqACy+8kB07dvCXv/yF9PR0HnnkEYYMGdKiciYiItIdqEIj0oMlJCQwY8YMZsyYQVVVFWPGjOGuu+7isssuA9r+Rd3xIH1lZWWzKs2mTZucr3dUUlISMTEx/Pjjj+3u9+abbzJu3DgWLFjQbHtZWRm9evXq8HXb4qh85efnO7e1dT8c1ZWysjLi4uKc239eqXLcl61btzarluzfv5/S0tJ24znqqKMAiImJcalilJaWxjXXXMM111xDUVERxx13HPfddx9nnHHGEY8VEREJJKrQiPRQxcXFzb6Oiori6KOPpr6+3rktMjISsP+ifrgzzzwTq9XKM88802z7E088gclk6tQvzUFBQZx77rm89957rFmzpsXrxsFx0GazucVo6DfeeIO8vLwOXxPgf//7X6tT4ZYsWQLAgAEDnNsiIyNb3As4lGx8/vnnzm3V1dW89NJLzfYbP348ISEh/OUvf2n2Hp588skjxjly5EiOOuooHn30Uaqqqlq8vn//fsBeFSovL2/2WnJyMunp6c3+bUVERLoLVWhEeqjBgwdzyimnMHLkSBISElizZo1z1K/DyJEjAbj++uuZOHEiZrOZ3//+95xzzjmMGzeO2267jV27djF8+HA++eQT3nnnHWbPnu38Bb+j7r//fj755BPGjh3LFVdcwaBBg8jPz+eNN97giy++IC4ujrPPPpu7776bGTNmcNJJJ/HDDz/wyiuvdPr5kIceeoi1a9fy29/+1vn80Lp163j55ZdJSEho9sD+yJEjef7557n33ns5+uijSU5O5tRTT+W0004jKyuLmTNncvPNN2M2m1m4cCFJSUnk5uY6j09KSuKmm27igQce4Oyzz+bMM8/k22+/5cMPPzxidSkoKIi//e1vnHHGGQwZMoQZM2aQkZFBXl4en332GTExMbz33ntUVlbSu3dvLrjgAoYPH05UVBT//e9/+eabb3jsscc6dY9ERET8mm+HrIlIZzjGAbc23tgwDGPs2LFHHNt87733GqNGjTLi4uKM8PBwY+DAgcZ9991nNDQ0OPdpamoyrrvuOiMpKckwmUzNRhNXVlYaf/zjH4309HQjJCTE6Nevn/HII480GylsGPbRzG2NEOZnY5sNwzB2795tTJ061UhKSjIsFovRt29f49prrzXq6+sNw7CPbb7xxhuNtLQ0Izw83Dj55JONVatWGWPHjm02UtnVsc0rV640rr32WmPo0KFGbGysERISYmRlZRnTp083tm/f3mzfgoIC46yzzjKio6MNoNn11q5da5x44olGaGiokZWVZTz++OMtxjYbhmFYrVZj/vz5zvhPOeUU48cff2zx7/Pzsc0O337
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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jRo1ShEREc7l/fr1U5s2bSpsnTj5ir7NZtOYMWNUUlKiL7/80mW9QYMGqV69ei7HKh1v0TANGTJE+/bt04oVK5zL3nnnHUVGRurmm28+7XlYt26dbrnlFk2bNk2vvvqqZsyYoYkTJ7qs07dvX+d+veVMx5Wdna3ly5frlltuUX5+vg4dOqRDhw7p8OHD6tu3r3755RdnK87ixYt1ySWX6A9/+INze3Xq1NG9996rXbt2VTotxt3vAbvdri+//FIDBgxQkyZNnOude+65uuaaa1y2WbduXd1www2aN2+e868Ndrtd8+fP14ABAxQdHV3lcwYAgY5ADlSDmTNnaunSpVqxYoW2bNni7LM+VXJysstrM9gdOXLE7X2Z4f28884r917btm116NAhFRQUSJKmTZumn376SUlJSbrkkks0ceJEl0B8um21adOm3C8KQUFBatmypcuy1q1bSyp/06M7x9qnTx8lJiY621YcDofmzZunG264QTExMZWcgeMmTJigVq1aafTo0RoxYoSeeuopTZo0SS+88IJznc2bN6tr166n3Y6nznRcv/76qwzD0BNPPKEGDRq4fJmtPQcOHJB0/PxX9r+j+X5F3P0eOHDggIqKinTuueeWW6+iZUOGDFFGRob+97//STreFpOVlaU777yzwjoAAO5hygpQDS655BLnlJXTCQ4OrnC54aP+51tuuUWXXXaZPvzwQy1ZskTPPfecnn32WX3wwQflrpB6mzvHGhwcrNtuu02vvfaaXnnlFa1evVr79u1zq1/566+/1p/+9Cfn6wkTJigrK0upqamKiYlRYmKi9u7dq9tvv/3sD+YkZzouh8MhSXrkkUcqvRGyojBcE/Tt21eNGjXSv/71L11++eX617/+pcaNG6t3795WlwYAtRqBHPAzKSkpkqTt27eXe2/btm2qX7++S3tBYmKiRo0apVGjRunAgQO68MIL9fTTT+uaa65x2ZY5Gca0fft25/smh8OhHTt2OK+KS9LPP/8sSeXGBLpryJAhmj59uj799FN99tlnatCggVsTPWw2m3bv3u2y7KWXXtKBAwd03333qVmzZhowYIA6d+5cpbqqyvwLQmho6BmDbEpKSqX/O5rvV/Y56czfAxEREYqIiNCvv/5abr2Klpm/IM2dO1fPPvusPvroI40YMaLSX0IAAO6hZQXwM4mJierUqZPefPNNlykoP/30k5YsWaJrr71W0vH+39zcXJfPNmzYUE2aNHHO6b7ooovUsGFDzZo1y2V292effaatW7eqX79+5fb/8ssvO/+7YRh6+eWXFRoaqj/+8Y9VOp4OHTqoQ4cOev311/X+++/r1ltvVUjIma8l9O7dW8uWLdOqVaucy4KCgvT6668rISFBGRkZ5eaMV4eGDRvqiiuu0D/+8Q/t37+/3Psnj7m89tpr9d1332nNmjXOZQUFBfrnP/+p5s2bV/pwI3e/B4KDg9W7d2999NFHLvcR/Prrr/rss88q3Padd96pI0eO6L777tPRo0eZrgIAXsAVcsAPPffcc7rmmmvUvXt33X333SoqKtL//d//qW7dus4bG/Pz89WsWTMNHDhQHTt2VJ06dfTll19q7dq1mj59uqTjV3GfffZZDR8+XD179tTgwYOVlZWll156Sc2bN9fYsWNd9hsREaHPP/9cQ4c
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAAHHCAYAAABp6x3pAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3xN9//A8dfNvtmRRAaJhAwRIjGL2lG7RWxF7BK0VIffVyu0VtVs0VZJUKta1N5CmxoxYkuNECpWRIjs5Pz+8M39upKQkLjG+/l43MfDPedzPp/3OcmV876fcVSKoigIIYQQQgghxCtIT9cBCCGEEEIIIcSzkoRGCCGEEEII8cqShEYIIYQQQgjxypKERgghhBBCCPHKkoRGCCGEEEII8cqShEYIIYQQQgjxypKERgghhBBCCPHKkoRGCCGEEEII8cqShEYIIYQQQgjxypKERoiXSHh4OCqVikOHDr2wNi9duoRKpSI8PPyFtSmEEEIIUVwkoRHiBchNVHJfJiYmeHl5MXToUG7cuKHr8HRi48aN1KxZEzMzM5ycnAgKCuL06dPPVNemTZtQqVQ4OzuTk5PzTHVcu3aN0NBQoqOjn+l4IYQQQuiGga4DEOJNMn78eNzd3UlLS+Ovv/5i3rx5bNq0iZMnT2JqaqqTmMqVK0dqaiqGhoYvrM2oqCjee+89fH19+eabb7h37x4bNmwgKiqKSpUqFbm+pUuX4ubmxqVLl9i1axeBgYFFruPatWuMGzcONzc3/P39i3y8EEIIIXRDEhohXqCWLVtSo0YNAPr374+trS3Tp0/njz/+oFu3bjqJKbfH6EX67bffyMnJYdu2bTg4OAAwevRo0tPTi1zXgwcP+OOPP5g0aRJhYWEsXbr0mRKaokpJSdFZEiqEEEKI/5EhZ0LoUJMmTQCIjY3V2p6ens7IkSOxt7fHzMyM9u3bc+vWLc3+3r17Y2dnR2ZmZp4633nnHby9vTXvt2/fzttvv421tTXm5uZ4e3vzf//3f5r9Bc2hOXv2LJ07d8be3h61Wo23tzf/+c9/NPvv37/PRx99hJubG8bGxpQuXZpmzZpx5MiRp563nl7+//UYGxs/9djHrVmzhtTUVDp16kTXrl1ZvXo1aWlpeco96TpERERQs2ZNAPr06aMZGph7TRo1akTlypU5fPgwDRo0wNTUVHPszZs36devHw4ODpiYmFC1alUWLVqk1XbuNf7222/56aefqFChAsbGxtSsWZOoqKg8se7atYv69etjZmaGtbU17733HmfOnNEqExoaikql4p9//uH999/HysoKe3t7vvjiCxRF4cqVK7z33ntYWlri6OjItGnTNMcmJydjZmbGhx9+mKftq1evoq+vz6RJk4rwUxBCCCF0RxIaIXTowoULANja2mptHzZsGMeOHWPs2LEMHjyY9evXM3ToUM3+nj17kpCQwNatW7WOu379Ort27eL9998H4NSpU7Rp04b09HTGjx/PtGnTePfdd4mMjHxiXMePH6d27drs2rWLAQMGMGvWLNq1a8f69es1ZT744APmzZtHUFAQc+fOZdSoUajV6jw33vnp2bMn+vr6jBgxAkVRnlr+SZYuXUrjxo1xdHSka9eu3L9/XytOePp18PHxYfz48QAMHDiQJUuWsGTJEho0aKCpIyEhgZYtW+Lv78/MmTNp3LgxqampNGrUiCVLltCjRw+mTp2KlZUVwcHBzJo1K0+sy5YtY+rUqQwaNIivv/6aS5cu0aFDB63EdMeOHTRv3pybN28SGhrKyJEj+fvvv6lXrx6XLl3KU2eXLl3Iyclh8uTJ1K5dm6+//pqZM2fSrFkzypQpw5QpU/Dw8GDUqFHs3bsXAHNzc9q3b8/KlSvJzs7Wqm/58uUoikKPHj2e7QcihBBCvGiKEKLEhYWFKYCyY8cO5datW8qVK1eUFStWKLa2toparVauXr2qVS4wMFDJycnRHD9ixAhFX19fuXv3rqIoipKdna2ULVtW6dKli1Y706dPV1QqlXLx4kVFURRlxowZCqDcunWrwNhiY2MVQAkLC9Nsa9CggWJhYaFcvnxZq+yjMVlZWSkhISHPdD3Wrl2rmJqaKvr6+srIkSOfqQ5FUZQbN24oBgYGyvz58zXb6tatq7z33nta5QpzHaKiovJch1wNGzZUAOWHH37Q2j5z5kwFUH755RfNtoyMDKVOnTqKubm5cu/ePUVR/neNbW1tlTt37mjK/vHHHwqgrF+/XrPN399fKV26tJKQkKDZduzYMUVPT0/p1auXZtvYsWMVQBk4cKBmW1ZWllK2bFlFpVIpkydP1mxPTExU1Gq10rt3b822rVu3KoCyefNmrXPy8/NTGjZsWOB1EkIIIV420kMjxAsUGBiIvb09Li4udO3aFXNzc9asWUOZMmW0yg0cOBCVSqV5X79+fbKzs7l8+TLwcMhWjx49WLduHffv39eUW7p0KXXr1sXd3R0Aa2trAP74449Cr/5169Yt9u7dS9++fXF1ddXa92hM1tbWHDhwgGvXrhX+AgCHDh2ic+fOfPPNN8ybN4/p06cTGhqqVaZ58+bUr1//qXWtWLECPT09goKCNNu6devG5s2bSUxM1IoVinYdHmdsbEyfPn20tm3atAlHR0et+U+GhoYMHz6c5ORk9uzZo1W+S5cu2NjYaN7nnuPFixcBiI+PJzo6muDgYEqVKqUp5+fnR7Nmzdi0aVOeuPr376/5t76+PjVq1EBRFPr166fZbm1tjbe3t6YdePi76OzszNKlSzXbTp48yfHjxzU9fEIIIcSrQBIaIV6gOXPmsH37dnbv3s3p06e5ePEizZs3z1Pu8UQi9yb40Zv0Xr16kZqaypo1awCIiYnh8OHD9OzZU1OmS5cu1KtXj/79++Pg4EDXrl359ddfn3hTn3vTW7ly5SeeyzfffMPJkydxcXGhVq1ahIaGat0wF2TMmDF4enoSEhLCgAED+Oqrrxg3bhwzZszQlDl16hS1a9d+al2//PILtWrVIiEhgfPnz3P+/HkCAgLIyMhg1apVmnLPch0eV6ZMGYyMjLS2Xb58GU9Pzzxzgnx8fDT7H/W0n2tu+UfnQD1a5+3bt3nw4MET67SyssLExAQ7O7s82x/9/clNiteuXUtKSgrwMCE2MTGhU6dOedoXQgghXlaS0AjxAtWqVYvAwEAaNWqEj49PgZPj9fX1892uPDLfpFKlSlSvXp1ffvkFeHhzb2RkROfOnTVl1Go1e/fuZceOHfTs2ZPjx4/TpUsXmjVrlmfuRFF17tyZixcv8t133+Hs7MzUqVPx9fVl8+bNTzzu77//1kpWxowZw9ChQxk5ciQ///wzGzdu5N9//33qHI5z584RFRXFX3/9haenp+b19ttvA2j1PBTHdVCr1YUq9ySF+bkWR52FbadXr14kJyezdu1aFEVh2bJltGnTBisrq2eORwghhHjRJKER4hXWq1cvdu3aRXx8PMuWLaN169ZaQ5rg4TfxTZs2Zfr06Zw+fZoJEyawa9cudu/enW+d5cuXBx4OP3oaJycnhgwZwtq1a4mNjcXW1pYJEyY88RiVSsWVK1e0ts2aNYvOnTszaNAghgwZQrt27QgICHhiPUuXLsXQ0JAVK1awatUqrdeHH37In3/+SVxcXKGvw6PD6QqrXLlynDt3Lk9Pz9mzZzX7i1ofPOxte9zZs2exs7PDzMysyHEWpHLlygQEBLB06VLN9Xq0h08IIYR4FUhCI8QrrFu3bqhUKj788EMuXryYZ+7DnTt38hyT+9DIgp75Ym9vT4MGDVi4cKFWQgD/+4Y/OzubpKQkrX2lS5fG2dn5qc+SCQwMZOfOnVrzS/T09Pj555+xtbUlLi6Odu3aPbEOeJjQ1K9fny5dutCxY0et1yeffAI8XLELCncdchOFu3fvPrXtXK1ateL69eusXLlSsy0rK4vvvvsOc3NzGjZsWOi64GGC6O/vz6JFi7TiOHnyJNu2baNVq1ZFqq8wevbsybZt25g5cya2tra0bNmy2NsQQgghSpI8WFOIV5i9vT0tWrRg1apVWFtb07p1a63948ePZ+/
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"for cat in sorted(data[group[-2]].unique()):\n",
" sub_data = data[data[group[-2]]==cat]\n",
" sub_data = sub_data.complete({group[0]:range(int(data[group[0]].min()), int(data[group[0]].max()) + 1)}\n",
" ,group[-1],fill_value=0)\n",
" g=sns.lineplot(sub_data.sort_values(ascending=True, by=group[-1]),y=record_col,x=group[0], hue=group[-1])\n",
" g.set(xticks=list(range(2012,2022+1,2)))\n",
" g.legend(title=None,bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0., ncols=math.ceil(len(g.legend_.texts)/12))\n",
" g.set_title(cat)\n",
" plt.show()"
]
2 years ago
}
],
"metadata": {
"kernelspec": {
2 years ago
"display_name": "Python 3 (ipykernel)",
2 years ago
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
2 years ago
"version": 3
2 years ago
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
2 years ago
"pygments_lexer": "ipython3",
"version": "3.9.16"
2 years ago
}
},
"nbformat": 4,
2 years ago
"nbformat_minor": 1
2 years ago
}