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.
blabla/PATSTAT/patstat_analysis_demo.ipynb

1273 lines
1.6 MiB
Plaintext

1 year ago
{
"cells": [
{
"cell_type": "code",
1 year ago
"execution_count": 2,
1 year ago
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import os\n",
"import pandas as pd\n",
"import janitor\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"from matplotlib.ticker import MaxNLocator\n",
"import math\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
1 year ago
"execution_count": 9,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"C:\\Users\\radvanyi\\PycharmProjects\\ZSI_analytics\\PATSTAT\n"
]
}
],
"source": [
"print(os.getcwd())"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 10,
1 year ago
"outputs": [],
"source": [
1 year ago
"outdir=\"EU_CH_scope/v2_\"\n",
1 year ago
"\n",
"appln = pd.read_csv(f\"{outdir}/tls_201_scope.csv\")\n",
"\n",
"appln_title = pd.read_csv(f\"{outdir}/tls_202_scope.csv\")\n",
"\n",
"pers = pd.read_csv(f\"{outdir}/tls_206_scope.csv\")\n",
"\n",
"appln_pers = pd.read_csv(f\"{outdir}/tls_207_scope.csv\")\n",
"\n",
"appln_cpc = pd.read_csv(f\"{outdir}/tls_224_scope.csv\")\n",
"\n",
1 year ago
"cpc_desc = pd.read_csv(r\"CPC_data/cpc_defs.csv\")\n",
1 year ago
"\n",
"country_defs = pd.read_csv(f\"{outdir}/table_tls801.csv\").rename(columns={\"st3_name\":\"Country\"})"
],
"metadata": {
"collapsed": false
}
},
1 year ago
{
"cell_type": "code",
"execution_count": 71,
"outputs": [],
"source": [
"ch_codes = [\"CN\",\"HK\",\"MO\",\"TW\"]\n",
"ch_names = country_defs[country_defs[\"ctry_code\"].isin(ch_codes)][\"Country\"].unique()"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
1 year ago
{
"cell_type": "code",
"execution_count": 90,
"outputs": [
{
"data": {
"text/plain": " ctry_code iso_alpha3 Country organisation_flag \n0 unknown Y \\\n1 AD AND Andorra \n2 AE ARE United Arab Emirates \n3 AF AFG Afghanistan \n4 AG ATG Antigua and Barbuda \n.. ... ... ... ... \n237 YE YEM Yemen \n238 YU YUG Yugoslavia/Serbia and Montenegro \n239 ZA ZAF South Africa \n240 ZM ZMB Zambia \n241 ZW ZWE Zimbabwe \n\n continent eu_member epo_member oecd_member discontinued \n0 NaN \n1 Europe \n2 Asia \n3 Asia \n4 North America \n.. ... ... ... ... ... \n237 Asia \n238 Europe Y \n239 Africa \n240 Africa \n241 Africa \n\n[242 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>ctry_code</th>\n <th>iso_alpha3</th>\n <th>Country</th>\n <th>organisation_flag</th>\n <th>continent</th>\n <th>eu_member</th>\n <th>epo_member</th>\n <th>oecd_member</th>\n <th>discontinued</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td></td>\n <td></td>\n <td>unknown</td>\n <td>Y</td>\n <td>NaN</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n <tr>\n <th>1</th>\n <td>AD</td>\n <td>AND</td>\n <td>Andorra</td>\n <td></td>\n <td>Europe</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n <tr>\n <th>2</th>\n <td>AE</td>\n <td>ARE</td>\n <td>United Arab Emirates</td>\n <td></td>\n <td>Asia</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n <tr>\n <th>3</th>\n <td>AF</td>\n <td>AFG</td>\n <td>Afghanistan</td>\n <td></td>\n <td>Asia</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n <tr>\n <th>4</th>\n <td>AG</td>\n <td>ATG</td>\n <td>Antigua and Barbuda</td>\n <td></td>\n <td>North America</td>\n <td></td>\n <td></td>\n <td></td>\n <td></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>237</th>\n <td>YE</td>\n <td>YEM</td>\n <td>Yemen</td>\n <td></td>\n <td>Asia</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n <tr>\n <th>238</th>\n <td>YU</td>\n <td>YUG</td>\n <td>Yugoslavia/Serbia and Montenegro</td>\n <td></td>\n <td>Europe</td>\n <td></td>\n <td></td>\n <td></td>\n <td>Y</td>\n </tr>\n <tr>\n <th>239</th>\n <td>ZA</td>\n <td>ZAF</td>\n <td>South Africa</td>\n <td></td>\n <td>Africa</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n <tr>\n <th>240</th>\n <td>ZM</td>\n <td>ZMB</td>\n <td>Zambia</td>\n <td></td>\n <td>Africa</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n <tr>\n <th>241</th>\n <td>ZW</td>\n <td>ZWE</td>\n <td>Zimbabwe</td>\n <td></td>\n <td>Africa</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n </tr>\n </tbody>\n</table>\n<p>242 rows × 9 columns</p>\n</div>"
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"country_defs"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 91,
"outputs": [
{
"data": {
"text/plain": " appln_id appln_auth appln_nr appln_kind appln_filing_date \n0 340657036 EP 12000117 A 2012-01-09 \\\n1 340982410 EP 12151915 A 2012-01-20 \n2 341078960 EP 12700310 A 2012-01-11 \n3 341078962 EP 12700311 A 2012-01-11 \n4 341127772 EP 12700372 A 2012-01-02 \n\n appln_filing_year appln_nr_original ipr_type receiving_office \n0 2012 12000117 PI \\\n1 2012 12151915 PI \n2 2012 12700310 PI \n3 2012 12700311 PI \n4 2012 12700372 PI \n\n internat_appln_id ... earliest_publn_date earliest_publn_year \n0 0 ... 2013-07-10 2013 \\\n1 0 ... 2012-07-25 2012 \n2 340778427 ... 2014-01-22 2014 \n3 340778431 ... 2014-01-22 2014 \n4 340460188 ... 2014-10-15 2014 \n\n earliest_pat_publn_id granted docdb_family_id inpadoc_family_id \n0 407623142 Y 45507394 340657036 \\\n1 365158710 Y 45531220 340982410 \n2 413564969 Y 45491582 340778427 \n3 413564970 Y 45491583 340778431 \n4 421840120 Y 45495923 340460188 \n\n docdb_family_size nb_citing_docdb_fam nb_applicants nb_inventors \n0 3 6 1 2 \n1 2 16 2 6 \n2 3 2 1 1 \n3 3 3 1 1 \n4 4 8 1 2 \n\n[5 rows x 26 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>appln_id</th>\n <th>appln_auth</th>\n <th>appln_nr</th>\n <th>appln_kind</th>\n <th>appln_filing_date</th>\n <th>appln_filing_year</th>\n <th>appln_nr_original</th>\n <th>ipr_type</th>\n <th>receiving_office</th>\n <th>internat_appln_id</th>\n <th>...</th>\n <th>earliest_publn_date</th>\n <th>earliest_publn_year</th>\n <th>earliest_pat_publn_id</th>\n <th>granted</th>\n <th>docdb_family_id</th>\n <th>inpadoc_family_id</th>\n <th>docdb_family_size</th>\n <th>nb_citing_docdb_fam</th>\n <th>nb_applicants</th>\n <th>nb_inventors</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>340657036</td>\n <td>EP</td>\n <td>12000117</td>\n <td>A</td>\n <td>2012-01-09</td>\n <td>2012</td>\n <td>12000117</td>\n <td>PI</td>\n <td></td>\n <td>0</td>\n <td>...</td>\n <td>2013-07-10</td>\n <td>2013</td>\n <td>407623142</td>\n <td>Y</td>\n <td>45507394</td>\n <td>340657036</td>\n <td>3</td>\n <td>6</td>\n <td>1</td>\n <td>2</td>\n </tr>\n <tr>\n <th>1</th>\n <td>340982410</td>\n <td>EP</td>\n <td>12151915</td>\n <td>A</td>\n <td>2012-01-20</td>\n <td>2012</td>\n <td>12151915</td>\n <td>PI</td>\n <td></td>\n <td>0</td>\n <td>...</td>\n <td>2012-07-25</td>\n <td>2012</td>\n <td>365158710</td>\n <td>Y</td>\n <td>45531220</td>\n <td>340982410</td>\n <td>2</td>\n <td>16</td>\n <td>2</td>\n <td>6</td>\n </tr>\n <tr>\n <th>2</th>\n <td>341078960</td>\n <td>EP</td>\n <td>12700310</td>\n <td>A</td>\n <td>2012-01-11</td>\n <td>2012</td>\n <td>12700310</td>\n <td>PI</td>\n <td></td>\n <td>340778427</td>\n <td>...</td>\n <td>2014-01-22</td>\n <td>2014</td>\n <td>413564969</td>\n <td>Y</td>\n <td>45491582</td>\n <td>340778427</td>\n <td>3</td>\n <td>2</td>\n <td>1</td>\n <td>1</td>\n </tr>\n <tr>\n <th>3</th>\n <td>341078962</td>\n <td>EP</td>\n <td>12700311</td>\n <td>A</td>\n <td>2012-01-11</td>\n <td>2012</td>\n <td>12700311</td>\n <td>PI</td>\n <td></td>\n <td>340778431</td>\n <td>...</td>\n <td>2014-01-22</td>\n <td>2014</td>\n <td>413564970</td>\n <td>Y</td>\n <td>45491583</td>\n <td>340778431</td>\n <td>3</td>\n <td>3</td>\n <td>1</td>\n <td>1</td>\n </tr>\n <tr>\n <th>4</th>\n <td>341127772</td>\n <td>EP</td>\n <td>12700372</td>\n <td>A</td>\n <td>2012-01-02</td>\n <td>2012</td>\n <td>12700372</td>\n <td>PI</td>\n <td></td>\n <td>340460188</td>\n <td>...</td>\n <td>2014-10-15</td>\n <td>2014</td>\n <td>421840120</td>\n <td>Y</td>\n <td>45495923</td>\n <td>340460188</td>\n <td>4</td>\n <td>8</td>\n <td>1</td>\n <td>2</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 26 columns</p>\n</div>"
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"appln.head()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
1 year ago
"execution_count": 92,
"outputs": [
{
"data": {
"text/plain": "appln_id 64266\nappln_nr 63242\nappln_nr_original 62651\ndtype: int64"
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"appln[[\"appln_id\",\"appln_nr\",\"appln_nr_original\"]].nunique()"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 76,
"outputs": [
{
"data": {
"text/plain": " person_id appln_id applt_seq_nr invt_seq_nr Country Country_Type\n0 1 340314532 1 0 Finland EU\n1 1 413601768 1 0 Finland EU\n2 128 332888018 1 0 Finland EU\n3 128 333546132 1 0 Finland EU\n4 128 334765473 1 0 Finland EU\n... ... ... ... ... ... ...\n274039 80730412 554759601 2 0 Latvia EU\n274040 83499411 571805168 0 2 Latvia EU\n274041 84881241 569497458 0 1 Latvia EU\n274042 85405745 568976675 0 5 Latvia EU\n274043 85718222 568976675 0 6 Latvia EU\n\n[274044 rows x 6 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>person_id</th>\n <th>appln_id</th>\n <th>applt_seq_nr</th>\n <th>invt_seq_nr</th>\n <th>Country</th>\n <th>Country_Type</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>1</td>\n <td>340314532</td>\n <td>1</td>\n <td>0</td>\n <td>Finland</td>\n <td>EU</td>\n </tr>\n <tr>\n <th>1</th>\n <td>1</td>\n <td>413601768</td>\n <td>1</td>\n <td>0</td>\n <td>Finland</td>\n <td>EU</td>\n </tr>\n <tr>\n <th>2</th>\n <td>128</td>\n <td>332888018</td>\n <td>1</td>\n <td>0</td>\n <td>Finland</td>\n <td>EU</td>\n </tr>\n <tr>\n <th>3</th>\n <td>128</td>\n <td>333546132</td>\n <td>1</td>\n <td>0</td>\n <td>Finland</td>\n <td>EU</td>\n </tr>\n <tr>\n <th>4</th>\n <td>128</td>\n <td>334765473</td>\n <td>1</td>\n <td>0</td>\n <td>Finland</td>\n <td>EU</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 </tr>\n <tr>\n <th>274039</th>\n <td>80730412</td>\n <td>554759601</td>\n <td>2</td>\n <td>0</td>\n <td>Latvia</td>\n <td>EU</td>\n </tr>\n <tr>\n <th>274040</th>\n <td>83499411</td>\n <td>571805168</td>\n <td>0</td>\n <td>2</td>\n <td>Latvia</td>\n <td>EU</td>\n </tr>\n <tr>\n <th>274041</th>\n <td>84881241</td>\n <td>569497458</td>\n <td>0</td>\n <td>1</td>\n <td>Latvia</td>\n <td>EU</td>\n </tr>\n <tr>\n <th>274042</th>\n <td>85405745</td>\n <td>568976675</td>\n <td>0</td>\n <td>5</td>\n <td>Latvia</td>\n <td>EU</td>\n </tr>\n <tr>\n <th>274043</th>\n <td>85718222</td>\n <td>568976675</td>\n <td>0</td>\n <td>6</td>\n <td>Latvia</td>\n <td>EU</td>\n </tr>\n </tbody>\n</table>\n<p>274044 rows × 6 columns</p>\n</div>"
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"appln_ctry = appln_pers.merge(pers[[\"person_id\",\"person_ctry_code\"]],\n",
" on=\"person_id\").merge(country_defs[[\"Country\",\"ctry_code\"]],\n",
" left_on=\"person_ctry_code\", right_on=\"ctry_code\").drop(columns=[\"ctry_code\",\"person_ctry_code\"])\n",
"appln_ctry[\"Country_Type\"] = \"EU\"\n",
"appln_ctry.loc[appln_ctry[\"Country\"].isin(ch_names),\"Country_Type\"] = \"CH\"\n",
"appln_ctry"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 63,
1 year ago
"outputs": [
{
"data": {
"text/plain": "Text(0.5, 0, 'Year')"
},
1 year ago
"execution_count": 63,
1 year ago
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
1 year ago
"image/png": "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
1 year ago
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
1 year ago
"data = appln.groupby([\"appln_filing_year\"], as_index=False)[\"appln_id\"].count()\n",
1 year ago
"data\n",
1 year ago
"g = sns.lineplot(data, x=\"appln_filing_year\", y=\"appln_id\", marker=\"o\")\n",
"g.set_title(\"Number of co-patents\")\n",
1 year ago
"g.set_ylabel(\"Count\")\n",
"g.set_xlabel(\"Year\")"
],
"metadata": {
1 year ago
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
1 year ago
}
},
{
"cell_type": "code",
1 year ago
"execution_count": 103,
1 year ago
"outputs": [],
"source": [
1 year ago
"\n",
"eu_invt = appln_ctry[((appln_ctry[\"Country_Type\"]==\"EU\") & (appln_ctry['invt_seq_nr']>0))][\"appln_id\"].unique()\n",
"eu_applt = appln_ctry[((appln_ctry[\"Country_Type\"]==\"EU\") & (appln_ctry['applt_seq_nr']>0))][\"appln_id\"].unique()\n",
"ch_invt = appln_ctry[((appln_ctry[\"Country_Type\"]==\"CH\" )& (appln_ctry['invt_seq_nr']>0))][\"appln_id\"].unique()\n",
"ch_applt = appln_ctry[((appln_ctry[\"Country_Type\"]==\"CH\") & (appln_ctry['applt_seq_nr']>0))][\"appln_id\"].unique()\n",
"\n",
"appln[\"co_inventors\"] = appln[\"appln_id\"].isin(eu_invt) & appln[\"appln_id\"].isin(ch_invt)\n",
"appln[\"co_applicants\"] = appln[\"appln_id\"].isin(eu_applt) & appln[\"appln_id\"].isin(ch_applt)\n",
"\n",
"appln[\"foreign ownership (CH inventors; EU owned)\"] = (appln[\"appln_id\"].isin(eu_applt) & appln[\"appln_id\"].isin(ch_invt) &\n",
" ~appln[\"appln_id\"].isin(eu_invt) & ~appln[\"appln_id\"].isin(ch_applt))\n",
"appln[\"foreign ownership (EU inventors; CH owned)\"] = (appln[\"appln_id\"].isin(ch_applt) & appln[\"appln_id\"].isin(eu_invt) &\n",
" ~appln[\"appln_id\"].isin(ch_invt)& ~appln[\"appln_id\"].isin(eu_applt))"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 104,
"outputs": [
{
"data": {
"text/plain": "<matplotlib.legend.Legend at 0x23fc9bcfe80>"
},
"execution_count": 104,
"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": [
"cols = [\"co_inventors\",\"co_applicants\",\n",
" \"foreign ownership (CH inventors)\",\n",
" \"foreign ownership (EU inventors)\",\n",
" \"foreign ownership (CH inventors; EU owned)\",\n",
" \"foreign ownership (EU inventors; CH owned)\"]\n",
"\n",
"for c in cols:\n",
" data = appln[appln[c]==True].groupby([\"appln_filing_year\"], as_index=False)[\"appln_id\"].count()\n",
" g = sns.lineplot(data, x=\"appln_filing_year\", y=\"appln_id\", marker=\"o\")\n",
"g.set_title(f\"Number of co-patents\")\n",
"g.set_ylabel(\"Count\")\n",
"g.set_xlabel(\"Year\")\n",
"g.legend(handles=g.lines,labels=[\"patents with \" + c.replace(\"_\",\"-\") for c in cols], bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 102,
"outputs": [
{
"data": {
"text/plain": "<matplotlib.legend.Legend at 0x23fc9eb87f0>"
},
"execution_count": 102,
"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": [
"data = appln.groupby([\"appln_filing_year\",\"appln_kind\"], as_index=False)[\"appln_id\"].count()\n",
"data\n",
"g = sns.lineplot(data, x=\"appln_filing_year\", y=\"appln_id\", marker=\"o\", hue=\"appln_kind\")\n",
"g.set_title(\"Number of co-patents\")\n",
"g.set_ylabel(\"Count\")\n",
"g.set_xlabel(\"Year\")\n",
"g.legend(title=None,bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 17,
"outputs": [
{
"data": {
"text/plain": "Text(0.5, 0, 'Year')"
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAHHCAYAAABeLEexAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB/8ElEQVR4nO3dd3gU1dvG8e+WbPomJKRQAknooRMEgnQp8sNGUUGkCYoKKvAKiL0jYkMFwQbYwIoFCyK9hBYI0oWQ0FMgpJfN7s77x5KFkFBCymyyz+e69kp2ZnbmmaHkzpkz52gURVEQQgghhHBiWrULEEIIIYRQmwQiIYQQQjg9CURCCCGEcHoSiIQQQgjh9CQQCSGEEMLpSSASQgghhNOTQCSEEEIIpyeBSAghhBBOTwKREEIIIZyeBCIhxA1Zu3YtGo2GH374Qe1SrktSUhJDhgzB398fjUbDe++9p3ZJQggHIoFICAe2aNEiNBoNbm5unDp1qtj6Hj160KJFCxUqq3omT57MihUrmDFjBl9++SW33nqr2iWVq5ycHF588UXWrl1bKcebN28eixYtqpRjCVEZ9GoXIIS4tvz8fN544w0++OADtUupslavXs2dd97Jk08+qXYpFSInJ4eXXnoJsAXlijZv3jxq1qzJ6NGjK/xYQlQGaSESogpo06YNn3zyCadPn1a7lEqXnZ1dLvtJTk7G19e3XPYlhKh+JBAJUQU8/fTTWCwW3njjjatul5CQgEajKfFWhkaj4cUXX7S/f/HFF9FoNPz333/cf//9+Pj4EBAQwHPPPYeiKJw4cYI777wTo9FIcHAwb7/9donHtFgsPP300wQHB+Pp6ckdd9zBiRMnim23detWbr31Vnx8fPDw8KB79+5s2rSpyDaFNe3fv5/77ruPGjVq0KVLl6ue89GjR7n77rvx8/PDw8ODTp068fvvv9vXF952VBSFuXPnotFo0Gg0V92n1Wplzpw5tGzZEjc3NwICArj11lvZsWOHfRuz2cwrr7xCgwYNcHV1JTQ0lKeffpr8/Pyr7rtQ4e3OmJgYOnfujLu7O2FhYcyfP7/IdiaTieeff57IyEh8fHzw9PSka9eurFmzxr5NQkICAQEBALz00kv2c7z0z/vgwYMMGTIEPz8/3NzcaN++Pb/++muRYxVeq02bNjFlyhQCAgLw9PRk4MCBpKSk2LcLDQ1l3759rFu3zn6swlapgoICXnrpJRo1aoSbmxv+/v506dKFlStXXtd1EUItEoiEqALCwsIYOXJkhbQS3XvvvVitVt544w06duzIq6++ynvvvUefPn2oU6cOs2bNomHDhjz55JOsX7++2Odfe+01fv/9d6ZPn87jjz/OypUr6d27N7m5ufZtVq9eTbdu3cjIyOCFF17g9ddfJy0tjV69erFt27Zi+7z77rvJycnh9ddf58EHH7xi7UlJSXTu3JkVK1bw6KOP8tprr5GXl8cdd9zBsmXLAOjWrRtffvklAH369OHLL7+0v7+SsWPHMmnSJEJCQpg1axZPPfUUbm5ubNmyxb7NuHHjeP7552nXrh3vvvsu3bt3Z+bMmQwdOvTqF/wS58+f53//+x+RkZG8+eab1K1bl0ceeYTPP//cvk1GRgaffvopPXr0YNasWbz44oukpKTQr18/YmNjAQgICOCjjz4CYODAgfZzHDRoEAD79u2jU6dOHDhwgKeeeoq3334bT09P7rrrLvt1utRjjz3G7t27eeGFF3jkkUf47bffmDhxon39e++9R926dWnatKn9WM888wxgC7UvvfQSPXv25MMPP+SZZ56hXr167Ny587qvixCqUIQQDmvhwoUKoGzfvl2Ji4tT9Hq98vjjj9vXd+/eXWnevLn9fXx8vAIoCxcuLLYvQHnhhRfs71944QUFUB566CH7MrPZrNStW1fRaDTKG2+8YV9+/vx5xd3dXRk1apR92Zo1axRAqVOnjpKRkWFf/t133ymAMmfOHEVRFMVqtSqNGjVS+vXrp1itVvt2OTk5SlhYmNKnT59iNQ0bNuy6rs+kSZMUQNmwYYN9WWZmphIWFqaEhoYqFoulyPlPmDDhmvtcvXq1AhS5zoUK64+NjVUAZdy4cUXWP/nkkwqgrF69+prH6d69uwIob7/9tn1Zfn6+0qZNGyUwMFAxmUyKotj+TPLz84t89vz580pQUJDywAMP2JelpKQU+zMudMsttygtW7ZU8vLyipxL586dlUaNGtmXFf596927d5E/q8mTJys6nU5JS0uzL2vevLnSvXv3Ysdq3bq1MmDAgGuevxCORlqIhKgiwsPDGTFiBB9//DFnzpwpt/2OGzfO/r1Op6N9+/YoisLYsWPty319fWnSpAlHjx4t9vmRI0fi7e1tfz9kyBBq1arFH3/8AUBsbCyHDx/mvvvu49y5c5w9e5azZ8+SnZ3NLbfcwvr167FarUX2+fDDD19X7X/88QcdOnQoclvNy8uLhx56iISEBPbv3399F+ESP/74IxqNhhdeeKHYusJbbYXnNmXKlCLr/+///g+gyC27q9Hr9YwfP97+3mAwMH78eJKTk4mJiQFsfyYGgwGw3cpLTU3FbDbTvn3762p1SU1NZfXq1dxzzz1kZmbar/+5c+fo168fhw8fLvYE40MPPVTktmLXrl2xWCwcO3bsmsfz9fVl3759HD58+LqugRCOQgKREFXIs88+i9lsvmZfotKoV69ekfc+Pj64ublRs2bNYsvPnz9f7PONGjUq8l6j0dCwYUMSEhIA7D8YR40aRUBAQJHXp59+Sn5+Punp6UX2ERYWdl21Hzt2jCZNmhRb3qxZM/v60oqLi6N27dr4+fld9bharZaGDRsWWR4cHIyvr6/9uLm5uSQmJhZ5Xap27dp4enoWWda4cWMA+/UDWLx4Ma1atbL3yQkICOD3338vdt1KcuTIERRF4bnnnit2/QtDX3JycpHPXP53okaNGgAl/vlf7uWXXyYtLY3GjRvTsmVLpk6dyr///nvNzwmhNnnsXogqJDw8nPvvv5+PP/6Yp556qtj6K3UWtlgsV9ynTqe7rmUAiqJcZ6UXFbb+zJ49mzZt2pS4jZeXV5H37u7upT6OGq7VOfvbb79lzJgxRZaV9hp+9dVXjB49mrvuuoupU6cSGBiITqdj5syZxMXFXfPzhdf/ySefpF+/fiVuc3mwK8uff7du3YiLi+OXX37h77//5tNPP+Xdd99l/vz5RVojhXA0EoiEqGKeffZZvvrqK2bNmlVsXeFv8mlpaUWW30hLyfW6/NaIoigcOXKEVq1aAdCgQQMAjEYjvXv3Ltdj169fn0OHDhVbfvDgQfv60mrQoAErVqwgNTX1iq1E9evXx2q1cvjwYXtrFNg6eaelpdmP269fv6s+XXX69Gmys7OLtBL9999/gO1JLoAffviB8PBwfvrppyIB7PJbelcKZ+Hh4QC4uLiU6/W/Whj08/NjzJgxjBkzhqysLLp168aLL74ogUg4NLllJkQV06BBA+6//34WLFhQ7BaM0WikZs2axZ4GmzdvXoXV88UXX5CZmWl//8MPP3DmzBn69+8PQGRkJA0aNOCtt94iKyur2OcvfZy7tP73v/+xbds2oqOj7cuys7P5+OOPCQ0NJSIiotT7HDx4MIqi2Ac5vFRhC8n//vc/gGLTf7zzzjsADBgwAIBatWrRu3fvIq9Lmc1mFixYYH9vMplYsGABAQEBREZGAhdbay5tndm6dWuRcwbw8PAAiofhwMBAevTowYIFC0rse3aj19/T07PYsQDOnTtX5L2XlxcNGza87uEIhFCLtBAJUQU988wzfPnllxw6dIjmzZsXWTdu3DjeeOMNxo0bR/v27Vm/fr291aEi+Pn50aVLF8aMGUNSUhLvvfceDRs2tD8ur9Vq+fTTT+nfvz/NmzdnzJgx1KlTh1OnTrFmzRqMRiO//fbbDR37qaeeYsmSJfTv35/HH38cPz8/Fi9eTHx8PD/++CNabel/5+vZsycjRozg/fff5/Dhw9x6661YrVY2bNhAz549mThxIq1bt2bUqFF8/PHHpKWl0b17d7Zt28bixYu
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data = appln.groupby([\"appln_filing_year\",\"granted\"], as_index=False)[\"appln_id\"].count()\n",
"data\n",
"g = sns.lineplot(data, x=\"appln_filing_year\", y=\"appln_id\", hue=\"granted\", marker=\"o\")\n",
"g.set_title(\"Number of co-patents\")\n",
"g.set_ylabel(\"Count\")\n",
"g.set_xlabel(\"Year\")"
1 year ago
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
1 year ago
"execution_count": 46,
"outputs": [
{
"data": {
"text/plain": "<matplotlib.legend.Legend at 0x23fbf31aa60>"
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtoAAAHHCAYAAACBTv/rAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADtV0lEQVR4nOzdd3xT5ffA8U9Gk+6W7pZO2lIoe1MUaNkCKoJbWeLGgSj6RRy49aeoOHECbtwDlCFQhiB7l1laWkYH3TPz/v6ojVTKTpuO83698tLc3Nx70pbk5LnnOY9KURQFIYQQQgghhF2pHR2AEEIIIYQQTZEk2kIIIYQQQtQBSbSFEEIIIYSoA5JoCyGEEEIIUQck0RZCCCGEEKIOSKIthBBCCCFEHZBEWwghhBBCiDogibYQQgghhBB1QBJtIYQQQggh6oAk2kKIi5KcnIxKpeL77793dCjnJTs7m2uvvRZfX19UKhVvvvmmo0MSQgjRxEmiLUQDNm/ePFQqFc7Ozhw7duy0xxMTE2nfvr0DImt8HnroIZYsWcL06dP5/PPPGTZsmKNDsqvy8nJmzpxJcnJyvZzvvffeY968efVyLiGEaKy0jg5ACHFuBoOBl19+mbffftvRoTRaK1as4Oqrr+aRRx5xdCh1ory8nGeeeQao+gJW19577z38/PyYMGFCnZ9LCCEaKxnRFqIR6Ny5Mx999BHHjx93dCj1rqyszC7HycnJwdvb2y7HEkIIIc6HJNpCNAKPP/44FouFl19++az7paeno1Kpar2kr1KpmDlzpu3+zJkzUalUHDhwgFtvvRUvLy/8/f158sknURSFzMxMrr76ajw9PQkKCmLWrFm1ntNisfD4448TFBSEm5sbV111FZmZmaftt2HDBoYNG4aXlxeurq7079+fv/76q8Y+1TGlpKRw880306JFCy6//PKzvubDhw9z3XXX4ePjg6urK71792bRokW2x6vLbxRF4d1330WlUqFSqc56TKvVyuzZs+nQoQPOzs74+/szbNgwNm/ebNvHbDbz3HPPER0djV6vJzIykscffxyDwXDWY1erLvvZsmULffr0wcXFhaioKObMmVNjP6PRyFNPPUW3bt3w8vLCzc2Nvn37snLlSts+6enp+Pv7A/DMM8/YXuOpv+99+/Zx7bXX4uPjg7OzM927d+fXX3+tca7qn9Vff/3F1KlT8ff3x83NjWuuuYbc3FzbfpGRkezZs4dVq1bZzlU9im4ymXjmmWeIjY3F2dkZX19fLr/8cpYtW3ZePxchhGhKJNEWohGIiopi3LhxdTKqfcMNN2C1Wnn55Zfp1asXzz//PG+++SaDBw+mZcuWvPLKK8TExPDII4+wevXq057/wgsvsGjRIh577DEeeOABli1bxqBBg6ioqLDts2LFCvr160dxcTFPP/00L774IoWFhQwYMICNGzeedszrrruO8vJyXnzxRe64444zxp6dnU2fPn1YsmQJ9957Ly+88AKVlZVcddVV/PTTTwD069ePzz//HIDBgwfz+eef2+6fyaRJk5gyZQphYWG88sor/O9//8PZ2Zm///7bts/tt9/OU089RdeuXXnjjTfo378/L730EjfeeOPZf+CnKCgoYPjw4XTr1o3/+7//IzQ0lHvuuYdPP/3Utk9xcTEff/wxiYmJvPLKK8ycOZPc3FyGDh3K9u3bAfD39+f9998H4JprrrG9xtGjRwOwZ88eevfuzd69e/nf//7HrFmzcHNzY9SoUbaf06nuv/9+duzYwdNPP80999zDb7/9xn333Wd7/M033yQ0NJQ2bdrYzjVjxgyg6svSM888Q1JSEu+88w4zZswgPDycrVu3nvfPRQghmgxFCNFgzZ07VwGUTZs2KampqYpWq1UeeOAB2+P9+/dX2rVrZ7uflpamAMrcuXNPOxagPP3007b7Tz/9tAIod955p22b2WxWQkNDFZVKpbz88su27QUFBYqLi4syfvx427aVK1cqgNKyZUuluLjYtv3bb79VAGX27NmKoiiK1WpVYmNjlaFDhypWq9W2X3l5uRIVFaUMHjz4tJhuuumm8/r5TJkyRQGUNWvW2LaVlJQoUVFRSmRkpGKxWGq8/smTJ5/zmCtWrFCAGj/natXxb9++XQGU22+/vcbjjzzyiAIoK1asOOd5+vfvrwDKrFmzbNsMBoPSuXNnJSAgQDEajYqiVP1ODAZDjecWFBQogYGBym233Wbblpube9rvuNrAgQOVDh06KJWVlTVeS58+fZTY2Fjbtuq/t0GDBtX4XT300EOKRqNRCgsLbdvatWun9O/f/7RzderUSRkxYsQ5X78QQjQHMqItRCPRqlUrxo4dy4cffsiJEyfsdtzbb7/d9v8ajYbu3bujKAqTJk2ybff29iYuLo7Dhw+f9vxx48bh4eFhu3/ttdcSHBzM77//DsD27ds5ePAgN998M3l5eZw8eZKTJ09SVlbGwIEDWb16NVartcYx77777vOK/ffff6dnz541ykvc3d258847SU9PJyUl5fx+CKf44YcfUKlUPP3006c9Vl1yUv3apk6dWuPxhx9+GKBG6crZaLVa7rrrLtt9nU7HXXfdRU5ODlu2bAGqfic6nQ6oKmnJz8/HbDbTvXv38xolzs/PZ8WKFVx//fWUlJTYfv55eXkMHTqUgwcPntbR5s4776xRXtO3b18sFgtHjhw55/m8vb3Zs2cPBw8ePK+fgRBCNGWSaAvRiDzxxBOYzeZz1mpfiPDw8Br3vby8cHZ2xs/P77TtBQUFpz0/Nja2xn2VSkVMTAzp6ekAtoRr/Pjx+Pv717h9/PHHGAwGioqKahwjKirqvGI/cuQIcXFxp21v27at7fELlZqaSkhICD4+Pmc9r1qtJiYmpsb2oKAgvL29beetqKggKyurxu1UISEhuLm51djWunVrANvPD2D+/Pl07NjRVvPs7+/PokWLTvu51ebQoUMoisKTTz552s+/+stETk5Ojef892+iRYsWALX+/v/r2WefpbCwkNatW9OhQwemTZvGzp07z/k8IYRoiqS9nxCNSKtWrbj11lv58MMP+d///nfa42ea5GexWM54TI1Gc17bABRFOc9I/1U9Wv3qq6/SuXPnWvdxd3evcd/FxeWCz+MI55pUuWDBAiZOnFhj24X+DL/44gsmTJjAqFGjmDZtGgEBAWg0Gl566SVSU1PP+fzqn/8jjzzC0KFDa93nv18YLuX3369fP1JTU/nll19YunQpH3/8MW+88QZz5sypcfVECCGaA0m0hWhknnjiCb744gteeeWV0x6rHnksLCyssf1iRnbP139LBBRF4dChQ3Ts2BGA6OhoADw9PRk0aJBdzx0REcH+/ftP275v3z7b4xcqOjqaJUuWkJ+ff8ZR7YiICKxWKwcPHrSNnkPV5MzCwkLbeYcOHXrWbhvHjx+nrKysxqj2gQMHgKrOHgDff/89rVq14scff6yR2P+3tOVMSX+rVq0AcHJysuvP/2xfMnx8fJg4cSITJ06ktLSUfv36MXPmTEm0hRDNjpSOCNHIREdHc+utt/LBBx+cVorg6emJn5/fad1B3nvvvTqL57PPPqOkpMR2//vvv+fEiRNcccUVAHTr1o3o6Ghee+01SktLT3v+qW3jLtTw4cPZuHEj69evt20rKyvjww8/JDIykvj4+As+5pgxY1AUxbb4y6mqR3SHDx8OcNoy7q+//joAI0aMACA4OJhBgwbVuJ3KbDbzwQcf2O4bjUY++OAD/P396datG/Dv6PKpo8kbNmyo8ZoBXF1dgdO/ZAUEBJCYmMgHH3xQa23/xf783dzcTjsXQF5eXo377u7uxMTEnHfbQyGEaEpkRFuIRmjGjBl8/vnn7N+/n3bt2tV47Pbbb+fll1/m9ttvp3v37qxevdo2SloXfHx8uPzyy5k4cSLZ2dm8+eabxMTE2NryqdVqPv74Y6644gratWvHxIkTadmyJceOHWPlypV4enry22+/XdS5//e///H1119zxRVX8MADD+Dj48P8+fNJS0vjhx9+QK2+8LGEpKQkxo4dy1tvvcXBgwcZNmwYVqu
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data = appln.groupby([\"appln_filing_year\",\"granted\",\"appln_kind\"], as_index=False)[\"appln_id\"].count()\n",
"g = sns.lineplot(data, x=\"appln_filing_year\", y=\"appln_id\", hue=\"appln_kind\",style=\"granted\", marker=\"o\")\n",
"g.set_title(\"Number of co-patents\")\n",
"g.set_ylabel(\"Count\")\n",
"g.set_xlabel(\"Year\")\n",
"g.legend(title=None,bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 60,
"outputs": [
{
"data": {
"text/plain": " appln_filing_year granted appln_kind appln_id\n0 2011 N A 1504\n1 2011 N F 6\n2 2011 N T 11\n3 2011 N U 2\n4 2011 N W 1211\n.. ... ... ... ...\n93 2022 N A 140\n94 2022 N U 1\n95 2022 N W 4\n96 2022 Y A 1\n97 2022 Y U 4\n\n[98 rows x 4 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>appln_filing_year</th>\n <th>granted</th>\n <th>appln_kind</th>\n <th>appln_id</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>2011</td>\n <td>N</td>\n <td>A</td>\n <td>1504</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2011</td>\n <td>N</td>\n <td>F</td>\n <td>6</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2011</td>\n <td>N</td>\n <td>T</td>\n <td>11</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2011</td>\n <td>N</td>\n <td>U</td>\n <td>2</td>\n </tr>\n <tr>\n <th>4</th>\n <td>2011</td>\n <td>N</td>\n <td>W</td>\n <td>1211</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>93</th>\n <td>2022</td>\n <td>N</td>\n <td>A</td>\n <td>140</td>\n </tr>\n <tr>\n <th>94</th>\n <td>2022</td>\n <td>N</td>\n <td>U</td>\n <td>1</td>\n </tr>\n <tr>\n <th>95</th>\n <td>2022</td>\n <td>N</td>\n <td>W</td>\n <td>4</td>\n </tr>\n <tr>\n <th>96</th>\n <td>2022</td>\n <td>Y</td>\n <td>A</td>\n <td>1</td>\n </tr>\n <tr>\n <th>97</th>\n <td>2022</td>\n <td>Y</td>\n <td>U</td>\n <td>4</td>\n </tr>\n </tbody>\n</table>\n<p>98 rows × 4 columns</p>\n</div>"
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 61,
"outputs": [
{
"data": {
"text/plain": " appln_filing_year granted appln_kind appln_id sum percent\n0 2011 N A 1504 3711 0.405282\n1 2011 Y A 2207 3711 0.594718\n2 2011 N F 6 104 0.057692\n3 2011 Y F 98 104 0.942308\n4 2011 N T 11 134 0.082090\n.. ... ... ... ... ... ...\n93 2022 N A 140 141 0.992908\n94 2022 Y A 1 141 0.007092\n95 2022 N U 1 5 0.200000\n96 2022 Y U 4 5 0.800000\n97 2022 N W 4 4 1.000000\n\n[98 rows x 6 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>appln_filing_year</th>\n <th>granted</th>\n <th>appln_kind</th>\n <th>appln_id</th>\n <th>sum</th>\n <th>percent</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>2011</td>\n <td>N</td>\n <td>A</td>\n <td>1504</td>\n <td>3711</td>\n <td>0.405282</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2011</td>\n <td>Y</td>\n <td>A</td>\n <td>2207</td>\n <td>3711</td>\n <td>0.594718</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2011</td>\n <td>N</td>\n <td>F</td>\n <td>6</td>\n <td>104</td>\n <td>0.057692</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2011</td>\n <td>Y</td>\n <td>F</td>\n <td>98</td>\n <td>104</td>\n <td>0.942308</td>\n </tr>\n <tr>\n <th>4</th>\n <td>2011</td>\n <td>N</td>\n <td>T</td>\n <td>11</td>\n <td>134</td>\n <td>0.082090</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 </tr>\n <tr>\n <th>93</th>\n <td>2022</td>\n <td>N</td>\n <td>A</td>\n <td>140</td>\n <td>141</td>\n <td>0.992908</td>\n </tr>\n <tr>\n <th>94</th>\n <td>2022</td>\n <td>Y</td>\n <td>A</td>\n <td>1</td>\n <td>141</td>\n <td>0.007092</td>\n </tr>\n <tr>\n <th>95</th>\n <td>2022</td>\n <td>N</td>\n <td>U</td>\n <td>1</td>\n <td>5</td>\n <td>0.200000</td>\n </tr>\n <tr>\n <th>96</th>\n <td>2022</td>\n <td>Y</td>\n <td>U</td>\n <td>4</td>\n <td>5</td>\n <td>0.800000</td>\n </tr>\n <tr>\n <th>97</th>\n <td>2022</td>\n <td>N</td>\n <td>W</td>\n <td>4</td>\n <td>4</td>\n <td>1.000000</td>\n </tr>\n </tbody>\n</table>\n<p>98 rows × 6 columns</p>\n</div>"
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p_data"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 62,
"outputs": [
{
"data": {
"text/plain": "Text(0.5, 0, 'Year')"
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAClWElEQVR4nOzdd3iT5dfA8W9W916UQqEte4OMCiJDUJYIuADZAipOBBF8VQQVxYE/RJSNyBTFAQqCyJIlCMjee0N3OjOf949AoLSUpqRNW87nunI1uZ91krbJyT1ViqIoCCGEEEKUEmpXByCEEEII4UyS3AghhBCiVJHkRgghhBCliiQ3QgghhChVJLkRQgghRKkiyY0QQgghShVJboQQQghRqkhyI4QQQohSRZIbIYQQQpQqktwIIVi/fj0qlYolS5a4OpR8uXLlCk8++STBwcGoVComTpzo6pCEEMWIJDdCFJE5c+agUqnw8PDgwoULOba3atWK2rVruyCykuf1119n1apVvPXWW8ybN4/27du7OiSnysjIYMyYMaxfv75IrvfNN98wZ86cIrmWEEVB6+oAhLjXGAwGxo8fz1dffeXqUEqstWvX0qVLF9544w1Xh1IoMjIyGDt2LGBLegvbN998Q0hICP379y/0awlRFKTmRogiVr9+fWbMmMHFixddHUqRS09Pd8p5rl69SkBAgFPOJYQofSS5EaKI/d///R8Wi4Xx48fnud/p06dRqVS5NheoVCrGjBljfzxmzBhUKhVHjx6ld+/e+Pv7ExoayrvvvouiKJw7d44uXbrg5+dHeHg4EyZMyPWaFouF//u//yM8PBxvb28ee+wxzp07l2O/bdu20b59e/z9/fHy8qJly5Zs3rw52z7XYzp48CDPPPMMgYGBNG/ePM/nfPLkSZ566imCgoLw8vLi/vvvZ/ny5fbt15v2FEXh66+/RqVSoVKp8jyn1Wrlyy+/pE6dOnh4eBAaGkr79u3ZsWOHfR+z2cwHH3xApUqVcHd3Jyoqiv/7v//DYDDkee7rrjcp7ty5k2bNmuHp6Ul0dDRTp07Ntp/RaGT06NE0bNgQf39/vL29efDBB1m3bp19n9OnTxMaGgrA2LFj7c/x5t/34cOHefLJJwkKCsLDw4NGjRqxbNmybNe6/lpt3ryZYcOGERoaire3N926dSMuLs6+X1RUFAcOHGDDhg32a12vLTKZTIwdO5YqVarg4eFBcHAwzZs3Z/Xq1fl6XYRwFUluhChi0dHR9O3bt1Bqb7p3747VamX8+PHExsby4YcfMnHiRB5++GHKlSvHJ598QuXKlXnjjTf4+++/cxw/btw4li9fzsiRI3n11VdZvXo1bdu2JTMz077P2rVradGiBXq9nvfee4+PPvqI5ORkHnroIbZv357jnE899RQZGRl89NFHDB48+LaxX7lyhWbNmrFq1SpefPFFxo0bR1ZWFo899hi//PILAC1atGDevHkAPPzww8ybN8/++HYGDhzI0KFDiYyM5JNPPmHUqFF4eHjwzz//2PcZNGgQo0eP5r777uN///sfLVu25OOPP6ZHjx55v+A3SUpKomPHjjRs2JBPP/2U8uXLM2TIEGbPnm3fR6/XM3PmTFq1asUnn3zCmDFjiIuLo127duzevRuA0NBQpkyZAkC3bt3sz/Hxxx8H4MCBA9x///0cOnSIUaNGMWHCBLy9venatav9dbrZK6+8wp49e3jvvfcYMmQIv/32Gy+//LJ9+8SJEylfvjzVq1e3X+vtt98GbAnq2LFjad26NZMnT+btt9+mQoUK7Nq1K9+vixAuoQghisS3336rAMq///6rnDhxQtFqtcqrr75q396yZUulVq1a9senTp1SAOXbb7/NcS5Aee+99+yP33vvPQVQnnvuOXuZ2WxWypcvr6hUKmX8+PH28qSkJMXT01Pp16+fvWzdunUKoJQrV07R6/X28h9++EEBlC+//FJRFEWxWq1KlSpVlHbt2ilWq9W+X0ZGhhIdHa08/PDDOWLq2bNnvl6foUOHKoCyceNGe1lqaqoSHR2tREVFKRaLJdvzf+mll+54zrVr1ypAttf5uuvx7969WwGUQYMGZdv+xhtvKICydu3aO16nZcuWCqBMmDDBXmYwGJT69esrYWFhitFoVBTF9jsxGAzZjk1KSlLKlCmjPPvss/ayuLi4HL/j69q0aaPUqVNHycrKyvZcmjVrplSpUsVedv3vrW3bttl+V6+//rqi0WiU5ORke1mtWrWUli1b5rhWvXr1lE6dOt3x+QtR3EjNjRAuEBMTQ58+fZg+fTqXLl1y2nkHDRpkv6/RaGjUqBGKojBw4EB7eUBAANWqVePkyZM5ju/bty++vr72x08++SRly5ZlxYoVAOzevZtjx47xzDPPkJCQQHx8PPHx8aSnp9OmTRv+/vtvrFZrtnO+8MIL+Yp9xYoVNGnSJFvTlY+PD8899xynT5/m4MGD+XsRbvLTTz+hUql47733cmy73px1/bkNGzYs2/bhw4cDZGsWy4tWq+X555+3P3Zzc+P555/n6tWr7Ny5E7D9Ttzc3ABbc1liYiJms5lGjRrlqzYkMTGRtWvX8vTTT5Oammp//RMSEmjXrh3Hjh3LMRLvueeey9Z09+CDD2KxWDhz5swdrxcQEMCBAwc4duxYvl4DIYoLSW6EcJF33nkHs9l8x743jqhQoUK2x/7+/nh4eBASEpKjPCkpKcfxVapUyfZYpVJRuXJlTp8+DWD/kOvXrx+hoaHZbjNnzsRgMJCSkpLtHNHR0fmK/cyZM1SrVi1HeY0aNezbHXXixAkiIiIICgrK87pqtZrKlStnKw8PDycgIMB+3czMTC5fvpztdrOIiAi8vb2zlVWtWhXA/voBfPfdd9StW9fehyU0NJTly5fneN1yc/z4cRRF4d13383x+l9P4K5evZrtmFv/JgIDAwFy/f3f6v333yc5OZmqVatSp04dRowYwd69e+94nBCuJkPBhXCRmJgYevfuzfTp0xk1alSO7bfrKGuxWG57To1Gk68yAEVR8hnpDddrZT777DPq16+f6z4+Pj7ZHnt6ejp8HVe4U8fkxYsXM2DAgGxljr6G8+fPp3///nTt2pURI0YQFhaGRqPh448/5sSJE3c8/vrr/8Ybb9CuXbtc97k1Sbub33+LFi04ceIES5cu5c8//2TmzJn873//Y+rUqdlqCYUobiS5EcKF3nnnHebPn88nn3ySY9v1b9jJycnZygtSg5FftzY/KIrC8ePHqVu3LgCVKlUCwM/Pj7Zt2zr12hUrVuTIkSM5yg8fPmzf7qhKlSqxatUqEhMTb1t7U7FiRaxWK8eOHbPXEoGtg3NycrL9uu3atctzlNDFixdJT0/PVntz9OhRwDYiCWDJkiXExMTw888/Z0umbm02u12iFRMTA4BOp3Pq659XYhcUFMSAAQMYMGAAaWlptGjRgjFjxkhyI4o1aZYSwoUqVapE7969mTZtWo5mDj8/P0JCQnKMavrmm28KLZ65c+eSmppqf7xkyRIuXbpEhw4dAGjYsCGVKlXi888/Jy0tLcfxNw8xdlTHjh3Zvn07W7dutZelp6czffp0oqKiqFmzpsPnfOKJJ1AUxT4h3s2u11x07NgRIMcSDl988QUAnTp1AqBs2bK0bds22+1mZrOZadOm2R8bjUamTZtGaGgoDRs2BG7Uotxca7Jt27ZszxnAy8sLyJnYhoWF0apVK6ZNm5ZrX62Cvv7e3t45rgWQkJCQ7bGPjw+VK1fO9xB5IVxFam6EcLG3336befPmceTIEWrVqpVt26BBgxg/fjyDBg2iUaNG/P333/bagMIQFBRE8+bNGTBgAFeuXGHixIlUrlzZPoRbrVYzc+ZMOnToQK1atRgwYADlypXjwoULrFu3Dj8/P3777bcCXXvUqFEsWrSIDh068OqrrxIUFMR3333HqVOn+Omnn1CrHf8u1rp1a/r06cOkSZM4duwY7du3x2q1snHjRlq3bs3LL79MvXr16NevH9OnTyc5OZmWLVuyfft2vvvuO7p27Urr1q3zda2IiAg++eQTTp8+TdW
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"perc = data.groupby(['appln_filing_year',\"appln_kind\"], as_index=False)[\"appln_id\"].sum().rename(columns={\"appln_id\":\"sum\"})\n",
"p_data = data.merge(perc, on = ['appln_filing_year',\"appln_kind\"])\n",
"p_data[\"percent\"] = p_data[\"appln_id\"]/p_data[\"sum\"]\n",
"# p_data\n",
"g = sns.lineplot(p_data[p_data[\"granted\"]==\"Y\"], x=\"appln_filing_year\", y=\"percent\", hue=\"appln_kind\", marker=\"o\")\n",
"g.set_title(\"Number of co-patents\")\n",
"g.set_ylabel(\"Percent of accepted co-patents\")\n",
"g.set_xlabel(\"Year\")\n",
"g.legend(title=None,bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 54,
"outputs": [
{
"data": {
"text/plain": "appln_filing_year appln_kind \n2011 A 0 40.528160\n 5 59.471840\n F 1 5.769231\n 6 94.230769\n T 2 8.208955\n ... \n2022 A 93 99.290780\n 96 0.709220\n U 94 20.000000\n 97 80.000000\n W 95 100.000000\nName: appln_id, Length: 98, dtype: float64"
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.groupby(['appln_filing_year',\"appln_kind\"])[\"appln_id\"].apply(lambda x:100 * x / float(x.sum()))"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 49,
"outputs": [
{
"ename": "NameError",
"evalue": "name 'p_data' is not defined",
"output_type": "error",
"traceback": [
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
"\u001B[1;31mNameError\u001B[0m Traceback (most recent call last)",
"Cell \u001B[1;32mIn[49], line 1\u001B[0m\n\u001B[1;32m----> 1\u001B[0m \u001B[43mp_data\u001B[49m\n",
"\u001B[1;31mNameError\u001B[0m: name 'p_data' is not defined"
]
}
],
"source": [
"p_data"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 39,
"outputs": [
{
"data": {
"text/plain": " appln_filing_year granted appln_kind appln_id percent\n0 2011 N A 1504 40.528160\n1 2011 N F 6 59.471840\n2 2011 N T 11 5.769231\n3 2011 N U 2 94.230769\n4 2011 N W 1211 8.208955\n.. ... ... ... ... ...\n93 2022 N A 140 99.290780\n94 2022 N U 1 0.709220\n95 2022 N W 4 20.000000\n96 2022 Y A 1 80.000000\n97 2022 Y U 4 100.000000\n\n[98 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>appln_filing_year</th>\n <th>granted</th>\n <th>appln_kind</th>\n <th>appln_id</th>\n <th>percent</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>2011</td>\n <td>N</td>\n <td>A</td>\n <td>1504</td>\n <td>40.528160</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2011</td>\n <td>N</td>\n <td>F</td>\n <td>6</td>\n <td>59.471840</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2011</td>\n <td>N</td>\n <td>T</td>\n <td>11</td>\n <td>5.769231</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2011</td>\n <td>N</td>\n <td>U</td>\n <td>2</td>\n <td>94.230769</td>\n </tr>\n <tr>\n <th>4</th>\n <td>2011</td>\n <td>N</td>\n <td>W</td>\n <td>1211</td>\n <td>8.208955</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>93</th>\n <td>2022</td>\n <td>N</td>\n <td>A</td>\n <td>140</td>\n <td>99.290780</td>\n </tr>\n <tr>\n <th>94</th>\n <td>2022</td>\n <td>N</td>\n <td>U</td>\n <td>1</td>\n <td>0.709220</td>\n </tr>\n <tr>\n <th>95</th>\n <td>2022</td>\n <td>N</td>\n <td>W</td>\n <td>4</td>\n <td>20.000000</td>\n </tr>\n <tr>\n <th>96</th>\n <td>2022</td>\n <td>Y</td>\n <td>A</td>\n <td>1</td>\n <td>80.000000</td>\n </tr>\n <tr>\n <th>97</th>\n <td>2022</td>\n <td>Y</td>\n <td>U</td>\n <td>4</td>\n <td>100.000000</td>\n </tr>\n </tbody>\n</table>\n<p>98 rows × 5 columns</p>\n</div>"
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 23,
"outputs": [
{
"data": {
"text/plain": "['A ', 'D ', 'F ', 'T ', 'U ', 'V ', 'W ']"
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sorted(appln[\"appln_kind\"].unique())"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": null,
1 year ago
"outputs": [],
"source": [
1 year ago
"for kind in sorted(appln[\"appln_kind\"].unique()):\n",
" sub_data = data[data[\"appln_kind\"]==kind]"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "markdown",
"source": [
"# Granted patents"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%% md\n"
}
}
},
{
"cell_type": "code",
"execution_count": null,
"outputs": [],
"source": [
"granted = appln[appln[\"granted\"]==\"Y\"][\"appln_id\"].unique()\n",
"appln_pers=[appln_pers[\"appln_id\"].isin(granted)]"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 93,
"outputs": [],
"source": [
"patstat_collabs = appln_pers.merge(pers, on=\"person_id\")\n",
"patstat_collabs = patstat_collabs.merge(country_defs, left_on=\"person_ctry_code\", right_on=\"ctry_code\")\n",
"patstat_collabs = patstat_collabs.groupby(\"appln_id\",as_index=False)[\"Country\"].unique().explode('Country')"
1 year ago
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 95,
"outputs": [
{
"data": {
"text/plain": " Country count percent weight\n0 China 18189 0.849160 0.400665\n1 Taiwan Province Of China 2667 0.124510 0.058748\n2 Hong Kong, China 859 0.040103 0.018922\n3 Macao SAR (China) 13 0.000607 0.000286",
"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>Country</th>\n <th>count</th>\n <th>percent</th>\n <th>weight</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>China</td>\n <td>18189</td>\n <td>0.849160</td>\n <td>0.400665</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Taiwan Province Of China</td>\n <td>2667</td>\n <td>0.124510</td>\n <td>0.058748</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Hong Kong, China</td>\n <td>859</td>\n <td>0.040103</td>\n <td>0.018922</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Macao SAR (China)</td>\n <td>13</td>\n <td>0.000607</td>\n <td>0.000286</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"country_collab = patstat_collabs[patstat_collabs[\"Country\"].isin(ch_names)][\"Country\"].value_counts().reset_index()\n",
"country_collab[\"percent\"] = country_collab[\"count\"]/patstat_collabs[\"appln_id\"].nunique()\n",
"country_collab[\"weight\"] = country_collab[\"count\"]/patstat_collabs[\"appln_id\"].size\n",
"country_collab"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 96,
"outputs": [
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "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
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data = country_collab\n",
"g = sns.barplot(data, x=\"count\", y=\"Country\", color=\"blue\")\n",
"g.set_xlim(0,20000)\n",
"g.set_ylabel(\"Country\")\n",
"g.set_xlabel(\"Number of co-patents\")\n",
"for i in g.containers:\n",
" g.bar_label(i,)"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 97,
"outputs": [
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "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
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data = country_collab\n",
"data[\"percent_round\"] = (data[\"percent\"]*100).round(2)\n",
"g = sns.barplot(data, x=\"percent_round\", y=\"Country\", color=\"blue\")\n",
"g.set_xlim(0,100)\n",
"g.set_ylabel(\"Country\")\n",
"g.set_xlabel(\"Percentage of co-patents\")\n",
"for i in g.containers:\n",
" # g.bar_label(i,fmt='%.2f%%')\n",
" g.bar_label(i,fmt='%.2f')"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 98,
"outputs": [
{
"data": {
"text/plain": " Country count percent weight\n0 Germany 7248 0.338375 0.159658\n1 Sweden 3679 0.171755 0.081041\n2 France 3450 0.161064 0.075996\n3 Netherlands 2734 0.127638 0.060224\n4 Finland 1377 0.064286 0.030332\n5 Belgium 1056 0.049300 0.023261\n6 Italy 1052 0.049113 0.023173\n7 Ireland 628 0.029318 0.013834\n8 Denmark 525 0.024510 0.011565\n9 Spain 478 0.022316 0.010529\n10 Austria 439 0.020495 0.009670\n11 Poland 277 0.012932 0.006102\n12 Luxembourg 170 0.007937 0.003745\n13 Greece 111 0.005182 0.002445\n14 Czechia 100 0.004669 0.002203\n15 Portugal 64 0.002988 0.001410\n16 Hungary 48 0.002241 0.001057\n17 Romania 48 0.002241 0.001057\n18 Cyprus 37 0.001727 0.000815\n19 Bulgaria 36 0.001681 0.000793\n20 Slovakia 32 0.001494 0.000705\n21 Malta 26 0.001214 0.000573\n22 Lithuania 15 0.000700 0.000330\n23 Croatia 13 0.000607 0.000286\n24 Slovenia 12 0.000560 0.000264\n25 Estonia 10 0.000467 0.000220\n26 Latvia 4 0.000187 0.000088",
"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>Country</th>\n <th>count</th>\n <th>percent</th>\n <th>weight</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Germany</td>\n <td>7248</td>\n <td>0.338375</td>\n <td>0.159658</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Sweden</td>\n <td>3679</td>\n <td>0.171755</td>\n <td>0.081041</td>\n </tr>\n <tr>\n <th>2</th>\n <td>France</td>\n <td>3450</td>\n <td>0.161064</td>\n <td>0.075996</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Netherlands</td>\n <td>2734</td>\n <td>0.127638</td>\n <td>0.060224</td>\n </tr>\n <tr>\n <th>4</th>\n <td>Finland</td>\n <td>1377</td>\n <td>0.064286</td>\n <td>0.030332</td>\n </tr>\n <tr>\n <th>5</th>\n <td>Belgium</td>\n <td>1056</td>\n <td>0.049300</td>\n <td>0.023261</td>\n </tr>\n <tr>\n <th>6</th>\n <td>Italy</td>\n <td>1052</td>\n <td>0.049113</td>\n <td>0.023173</td>\n </tr>\n <tr>\n <th>7</th>\n <td>Ireland</td>\n <td>628</td>\n <td>0.029318</td>\n <td>0.013834</td>\n </tr>\n <tr>\n <th>8</th>\n <td>Denmark</td>\n <td>525</td>\n <td>0.024510</td>\n <td>0.011565</td>\n </tr>\n <tr>\n <th>9</th>\n <td>Spain</td>\n <td>478</td>\n <td>0.022316</td>\n <td>0.010529</td>\n </tr>\n <tr>\n <th>10</th>\n <td>Austria</td>\n <td>439</td>\n <td>0.020495</td>\n <td>0.009670</td>\n </tr>\n <tr>\n <th>11</th>\n <td>Poland</td>\n <td>277</td>\n <td>0.012932</td>\n <td>0.006102</td>\n </tr>\n <tr>\n <th>12</th>\n <td>Luxembourg</td>\n <td>170</td>\n <td>0.007937</td>\n <td>0.003745</td>\n </tr>\n <tr>\n <th>13</th>\n <td>Greece</td>\n <td>111</td>\n <td>0.005182</td>\n <td>0.002445</td>\n </tr>\n <tr>\n <th>14</th>\n <td>Czechia</td>\n <td>100</td>\n <td>0.004669</td>\n <td>0.002203</td>\n </tr>\n <tr>\n <th>15</th>\n <td>Portugal</td>\n <td>64</td>\n <td>0.002988</td>\n <td>0.001410</td>\n </tr>\n <tr>\n <th>16</th>\n <td>Hungary</td>\n <td>48</td>\n <td>0.002241</td>\n <td>0.001057</td>\n </tr>\n <tr>\n <th>17</th>\n <td>Romania</td>\n <td>48</td>\n <td>0.002241</td>\n <td>0.001057</td>\n </tr>\n <tr>\n <th>18</th>\n <td>Cyprus</td>\n <td>37</td>\n <td>0.001727</td>\n <td>0.000815</td>\n </tr>\n <tr>\n <th>19</th>\n <td>Bulgaria</td>\n <td>36</td>\n <td>0.001681</td>\n <td>0.000793</td>\n </tr>\n <tr>\n <th>20</th>\n <td>Slovakia</td>\n <td>32</td>\n <td>0.001494</td>\n <td>0.000705</td>\n </tr>\n <tr>\n <th>21</th>\n <td>Malta</td>\n <td>26</td>\n <td>0.001214</td>\n <td>0.000573</td>\n </tr>\n <tr>\n <th>22</th>\n <td>Lithuania</td>\n <td>15</td>\n <td>0.000700</td>\n <td>0.000330</td>\n </tr>\n <tr>\n <th>23</th>\n <td>Croatia</td>\n <td>13</td>\n <td>0.000607</td>\n <td>0.000286</td>\n </tr>\n <tr>\n <th>24</th>\n <td>Slovenia</td>\n <td>12</td>\n <td>0.000560</td>\n <td>0.000264</td>\n </tr>\n <tr>\n <th>25</th>\n <td>Estonia</td>\n <td>10</td>\n <td>0.000467</td>\n <td>0.000220</td>\n </tr>\n <tr>\n <th>26</th>\n <td>Latvia</td>\n <td>4</td>\n <td>0.000187</td>\n <td>0.000088</td>
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"country_collab = patstat_collabs[~patstat_collabs[\"Country\"].isin(ch_names)][\"Country\"].value_counts().reset_index()\n",
"country_collab[\"percent\"] = country_collab[\"count\"]/patstat_collabs[\"appln_id\"].nunique()\n",
"country_collab[\"weight\"] = country_collab[\"count\"]/patstat_collabs[\"appln_id\"].size\n",
"country_collab"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 99,
"outputs": [
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "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
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data = country_collab\n",
"g = sns.barplot(data, x=\"count\", y=\"Country\", color=\"blue\")\n",
"g.set_xlim(0,8000)\n",
"g.set_ylabel(\"Country\")\n",
"g.set_xlabel(\"Number of co-patents\")\n",
"for i in g.containers:\n",
" g.bar_label(i,)"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 100,
"outputs": [
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "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
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data = country_collab\n",
"data[\"percent_round\"] = (data[\"percent\"]*100).round(2)\n",
"g = sns.barplot(data, x=\"percent_round\", y=\"Country\", color=\"blue\")\n",
"g.set_xlim(0,40)\n",
"g.set_ylabel(\"Country\")\n",
"g.set_xlabel(\"Percentage of co-patents\")\n",
"for i in g.containers:\n",
" # g.bar_label(i,fmt='%.2f%%')\n",
" g.bar_label(i,fmt='%.2f')"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"# Pivot country - year"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 106,
"outputs": [
{
"data": {
"text/plain": " appln_id Country appln_filing_year\n0 340657036 Denmark 2012\n1 340657036 China 2012\n2 340982410 Denmark 2012\n3 340982410 China 2012\n4 341078960 Germany 2012\n... ... ... ...\n45392 575326930 China 2021\n45393 575399552 Sweden 2020\n45394 575399552 China 2020\n45395 575406608 Germany 2014\n45396 575406608 China 2014\n\n[45397 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>appln_id</th>\n <th>Country</th>\n <th>appln_filing_year</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>340657036</td>\n <td>Denmark</td>\n <td>2012</td>\n </tr>\n <tr>\n <th>1</th>\n <td>340657036</td>\n <td>China</td>\n <td>2012</td>\n </tr>\n <tr>\n <th>2</th>\n <td>340982410</td>\n <td>Denmark</td>\n <td>2012</td>\n </tr>\n <tr>\n <th>3</th>\n <td>340982410</td>\n <td>China</td>\n <td>2012</td>\n </tr>\n <tr>\n <th>4</th>\n <td>341078960</td>\n <td>Germany</td>\n <td>2012</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>45392</th>\n <td>575326930</td>\n <td>China</td>\n <td>2021</td>\n </tr>\n <tr>\n <th>45393</th>\n <td>575399552</td>\n <td>Sweden</td>\n <td>2020</td>\n </tr>\n <tr>\n <th>45394</th>\n <td>575399552</td>\n <td>China</td>\n <td>2020</td>\n </tr>\n <tr>\n <th>45395</th>\n <td>575406608</td>\n <td>Germany</td>\n <td>2014</td>\n </tr>\n <tr>\n <th>45396</th>\n <td>575406608</td>\n <td>China</td>\n <td>2014</td>\n </tr>\n </tbody>\n</table>\n<p>45397 rows × 3 columns</p>\n</div>"
},
"execution_count": 106,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"record_col = \"appln_id\"\n",
"patstat_collabs_y=patstat_collabs.merge(appln[[record_col,\"appln_filing_year\"]], on=\"appln_id\")\n",
"patstat_collabs_y"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 111,
"outputs": [
{
"data": {
"text/plain": " appln_filing_year Country count appln_id percent\n0 2012 China 2581 3001 0.860047\n1 2012 Germany 888 3001 0.295901\n2 2012 France 653 3001 0.217594\n3 2012 Sweden 473 3001 0.157614\n4 2012 Netherlands 406 3001 0.135288\n.. ... ... ... ... ...\n264 2022 China 4 5 0.800000\n265 2022 Netherlands 2 5 0.400000\n266 2022 Spain 2 5 0.400000\n267 2022 Hong Kong, China 1 5 0.200000\n268 2022 Czechia 1 5 0.200000\n\n[269 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>appln_filing_year</th>\n <th>Country</th>\n <th>count</th>\n <th>appln_id</th>\n <th>percent</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>2012</td>\n <td>China</td>\n <td>2581</td>\n <td>3001</td>\n <td>0.860047</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2012</td>\n <td>Germany</td>\n <td>888</td>\n <td>3001</td>\n <td>0.295901</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2012</td>\n <td>France</td>\n <td>653</td>\n <td>3001</td>\n <td>0.217594</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2012</td>\n <td>Sweden</td>\n <td>473</td>\n <td>3001</td>\n <td>0.157614</td>\n </tr>\n <tr>\n <th>4</th>\n <td>2012</td>\n <td>Netherlands</td>\n <td>406</td>\n <td>3001</td>\n <td>0.135288</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>264</th>\n <td>2022</td>\n <td>China</td>\n <td>4</td>\n <td>5</td>\n <td>0.800000</td>\n </tr>\n <tr>\n <th>265</th>\n <td>2022</td>\n <td>Netherlands</td>\n <td>2</td>\n <td>5</td>\n <td>0.400000</td>\n </tr>\n <tr>\n <th>266</th>\n <td>2022</td>\n <td>Spain</td>\n <td>2</td>\n <td>5</td>\n <td>0.400000</td>\n </tr>\n <tr>\n <th>267</th>\n <td>2022</td>\n <td>Hong Kong, China</td>\n <td>1</td>\n <td>5</td>\n <td>0.200000</td>\n </tr>\n <tr>\n <th>268</th>\n <td>2022</td>\n <td>Czechia</td>\n <td>1</td>\n <td>5</td>\n <td>0.200000</td>\n </tr>\n </tbody>\n</table>\n<p>269 rows × 5 columns</p>\n</div>"
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"countall = patstat_collabs_y.groupby(\"appln_filing_year\", as_index=False)[record_col].nunique()\n",
"data = patstat_collabs_y.groupby(\"appln_filing_year\", as_index=False)[\"Country\"].value_counts().merge(countall, on=\"appln_filing_year\")\n",
"data[\"percent\"] = data[\"count\"]/data[record_col]\n",
"data_ch = data[data[\"Country\"].isin(ch_names)]\n",
"data_ch"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 116,
"outputs": [
{
"data": {
"text/plain": "Text(95.7222222222222, 0.5, '')"
},
"execution_count": 116,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 1000x300 with 2 Axes>",
"image/png": "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
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(10,3))\n",
"g = sns.heatmap(pd.pivot_table(data_ch,columns=\"appln_filing_year\", index=\"Country\", values=\"count\").fillna(0).astype(int),\n",
" annot=True, fmt=\".0f\",linewidth=.5)\n",
"g.set_title(\"Number of co-patents per year\")\n",
"g.set_xlabel(\"\")\n",
"g.set_ylabel(\"\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 118,
"outputs": [
{
"data": {
"text/plain": "Text(95.7222222222222, 0.5, '')"
},
"execution_count": 118,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 1000x300 with 2 Axes>",
"image/png": "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
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(10,3))\n",
"g = sns.heatmap(pd.pivot_table(data_ch,columns=\"appln_filing_year\", index=\"Country\", values=\"percent\").fillna(0)*100,\n",
" annot=True, fmt=\".2f\",linewidth=.5)\n",
"g.set_title(\"Percentage of co-patents related to country per year\")\n",
"g.set_xlabel(\"\")\n",
"g.set_ylabel(\"\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 112,
"outputs": [
{
"data": {
"text/plain": " appln_filing_year Country count appln_id percent\n1 2012 Germany 888 3001 0.295901\n2 2012 France 653 3001 0.217594\n3 2012 Sweden 473 3001 0.157614\n4 2012 Netherlands 406 3001 0.135288\n6 2012 Finland 257 3001 0.085638\n.. ... ... ... ... ...\n262 2021 Hungary 1 127 0.007874\n263 2021 Croatia 1 127 0.007874\n265 2022 Netherlands 2 5 0.400000\n266 2022 Spain 2 5 0.400000\n268 2022 Czechia 1 5 0.200000\n\n[231 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>appln_filing_year</th>\n <th>Country</th>\n <th>count</th>\n <th>appln_id</th>\n <th>percent</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1</th>\n <td>2012</td>\n <td>Germany</td>\n <td>888</td>\n <td>3001</td>\n <td>0.295901</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2012</td>\n <td>France</td>\n <td>653</td>\n <td>3001</td>\n <td>0.217594</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2012</td>\n <td>Sweden</td>\n <td>473</td>\n <td>3001</td>\n <td>0.157614</td>\n </tr>\n <tr>\n <th>4</th>\n <td>2012</td>\n <td>Netherlands</td>\n <td>406</td>\n <td>3001</td>\n <td>0.135288</td>\n </tr>\n <tr>\n <th>6</th>\n <td>2012</td>\n <td>Finland</td>\n <td>257</td>\n <td>3001</td>\n <td>0.085638</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>262</th>\n <td>2021</td>\n <td>Hungary</td>\n <td>1</td>\n <td>127</td>\n <td>0.007874</td>\n </tr>\n <tr>\n <th>263</th>\n <td>2021</td>\n <td>Croatia</td>\n <td>1</td>\n <td>127</td>\n <td>0.007874</td>\n </tr>\n <tr>\n <th>265</th>\n <td>2022</td>\n <td>Netherlands</td>\n <td>2</td>\n <td>5</td>\n <td>0.400000</td>\n </tr>\n <tr>\n <th>266</th>\n <td>2022</td>\n <td>Spain</td>\n <td>2</td>\n <td>5</td>\n <td>0.400000</td>\n </tr>\n <tr>\n <th>268</th>\n <td>2022</td>\n <td>Czechia</td>\n <td>1</td>\n <td>5</td>\n <td>0.200000</td>\n </tr>\n </tbody>\n</table>\n<p>231 rows × 5 columns</p>\n</div>"
},
"execution_count": 112,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_eu = data[~data[\"Country\"].isin(ch_names)]\n",
"data_eu"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 121,
"outputs": [
{
"data": {
"text/plain": "Text(95.72222222222221, 0.5, '')"
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 1000x1000 with 2 Axes>",
"image/png": "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
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(10,10))\n",
"g = sns.heatmap(pd.pivot_table(data_eu,columns=\"appln_filing_year\", index=\"Country\", values=\"count\").fillna(0).astype(int),\n",
" annot=True, fmt=\".0f\",linewidth=.5)\n",
"g.set_title(\"Number of co-patents per year\")\n",
"g.set_xlabel(\"\")\n",
"g.set_ylabel(\"\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 123,
"outputs": [
{
"data": {
"text/plain": "Text(95.72222222222221, 0.5, '')"
},
"execution_count": 123,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 1000x1000 with 2 Axes>",
"image/png": "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
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(10,10))\n",
"g = sns.heatmap(pd.pivot_table(data_eu,columns=\"appln_filing_year\", index=\"Country\", values=\"percent\").fillna(0)*100,\n",
" annot=True, fmt=\".2f\",linewidth=.5)\n",
"g.set_title(\"Percentage of co-patents related to country per year\")\n",
"g.set_xlabel(\"\")\n",
"g.set_ylabel(\"\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"# Let's see about 'organizations'"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": null,
"outputs": [],
"source": [
"# harmonized entities (sector and country too)"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 181,
"outputs": [],
"source": [
"pers_han = pers[[\"person_id\",\"han_id\",\"han_name\",\"psn_sector\",\"person_ctry_code\"]].drop_duplicates()\n",
"pers_han[\"psn_sector\"].fillna(\"UNKNOWN\", inplace=True)\n",
"pers_han = pers_han.sort_values(by=\"psn_sector\", ascending=True)\n",
"pers_han.drop(columns=\"person_id\", inplace=True)\n",
"pers_han = pers_han.groupby(\"han_id\", as_index=False)[[\"han_name\",\"psn_sector\",\"person_ctry_code\"]].agg(\n",
" lambda x: pd.Series.mode(x)[0])\n",
"pers_han = pers_han.merge(country_defs,left_on=\"person_ctry_code\",right_on=\"ctry_code\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 182,
"outputs": [
{
"data": {
"text/plain": " appln_id han_id han_name psn_sector Country\n0 352908776 1663881 L OREAL COMPANY France\n1 419627340 1663881 L OREAL COMPANY France\n2 422411429 1663881 L OREAL COMPANY France\n3 439807462 1663881 L OREAL COMPANY France\n4 441685575 1663881 L OREAL COMPANY France\n... ... ... ... ... ...\n87656 488889994 1590343 KERBEJ YUROP LTD COMPANY Malta\n87657 472247962 153591744 Van Rooij, Reinhart Cornelis UNKNOWN Latvia\n87658 505769448 157946198 VINGOVATOVS, Aleksejs UNKNOWN Latvia\n87659 481190056 3652317 VAVILOVS VALERIJS INDIVIDUAL Latvia\n87660 554759601 3652317 VAVILOVS VALERIJS INDIVIDUAL Latvia\n\n[87073 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>appln_id</th>\n <th>han_id</th>\n <th>han_name</th>\n <th>psn_sector</th>\n <th>Country</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>352908776</td>\n <td>1663881</td>\n <td>L OREAL</td>\n <td>COMPANY</td>\n <td>France</td>\n </tr>\n <tr>\n <th>1</th>\n <td>419627340</td>\n <td>1663881</td>\n <td>L OREAL</td>\n <td>COMPANY</td>\n <td>France</td>\n </tr>\n <tr>\n <th>2</th>\n <td>422411429</td>\n <td>1663881</td>\n <td>L OREAL</td>\n <td>COMPANY</td>\n <td>France</td>\n </tr>\n <tr>\n <th>3</th>\n <td>439807462</td>\n <td>1663881</td>\n <td>L OREAL</td>\n <td>COMPANY</td>\n <td>France</td>\n </tr>\n <tr>\n <th>4</th>\n <td>441685575</td>\n <td>1663881</td>\n <td>L OREAL</td>\n <td>COMPANY</td>\n <td>France</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>87656</th>\n <td>488889994</td>\n <td>1590343</td>\n <td>KERBEJ YUROP LTD</td>\n <td>COMPANY</td>\n <td>Malta</td>\n </tr>\n <tr>\n <th>87657</th>\n <td>472247962</td>\n <td>153591744</td>\n <td>Van Rooij, Reinhart Cornelis</td>\n <td>UNKNOWN</td>\n <td>Latvia</td>\n </tr>\n <tr>\n <th>87658</th>\n <td>505769448</td>\n <td>157946198</td>\n <td>VINGOVATOVS, Aleksejs</td>\n <td>UNKNOWN</td>\n <td>Latvia</td>\n </tr>\n <tr>\n <th>87659</th>\n <td>481190056</td>\n <td>3652317</td>\n <td>VAVILOVS VALERIJS</td>\n <td>INDIVIDUAL</td>\n <td>Latvia</td>\n </tr>\n <tr>\n <th>87660</th>\n <td>554759601</td>\n <td>3652317</td>\n <td>VAVILOVS VALERIJS</td>\n <td>INDIVIDUAL</td>\n <td>Latvia</td>\n </tr>\n </tbody>\n</table>\n<p>87073 rows × 5 columns</p>\n</div>"
},
"execution_count": 182,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"patstat_collabs = appln_pers.merge(pers, on=\"person_id\")\n",
"patstat_collabs = patstat_collabs.merge(country_defs, left_on=\"person_ctry_code\", right_on=\"ctry_code\")\n",
"org_collabs = patstat_collabs[[record_col,\"han_id\",\"han_name\",\"psn_sector\",\"Country\"]].drop_duplicates()\n",
"org_collabs[\"psn_sector\"].fillna(\"UNKNOWN\", inplace=True)\n",
"org_collabs"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 183,
"outputs": [
{
"data": {
"text/plain": " han_id count percent weight \n0 1337324 1980 0.092437 0.022740 \\\n1 62077 406 0.018954 0.004663 \n2 111166343 176 0.008217 0.002021 \n3 1912470 174 0.008123 0.001998 \n4 3697072 172 0.008030 0.001975 \n... ... ... ... ... \n21413 149475428 1 0.000047 0.000011 \n21414 149475432 1 0.000047 0.000011 \n21415 149475629 1 0.000047 0.000011 \n21416 149475736 1 0.000047 0.000011 \n21417 182805176 1 0.000047 0.000011 \n\n han_name psn_sector person_ctry_code \n0 HUAWEI TECH CO LTD COMPANY CN \\\n1 TAIWAN SEMICONDUCTOR MANUFACTURING CO LTD COMPANY TW \n2 Liu, Jinhua INDIVIDUAL CN \n3 MEDIATEK INC COMPANY TW \n4 NINGBO GEELY AUTOMOBILE R&D CO LTD COMPANY CN \n... ... ... ... \n21413 CHEN, Yuli UNKNOWN CN \n21414 CHEN, Zhi UNKNOWN CN \n21415 Du, Jun UNKNOWN CN \n21416 Chunlin, Wu UNKNOWN CN \n21417 Killine Optical Ltd UNKNOWN MO \n\n ctry_code iso_alpha3 Country organisation_flag \n0 CN CHN China \\\n1 TW TWN Taiwan Province Of China \n2 CN CHN China \n3 TW TWN Taiwan Province Of China \n4 CN CHN China \n... ... ... ... ... \n21413 CN CHN China \n21414 CN CHN China \n21415 CN CHN China \n21416 CN CHN China \n21417 MO MAC Macao SAR (China) \n\n continent eu_member epo_member oecd_member discontinued \n0 Asia \\\n1 Asia \n2 Asia \n3 Asia \n4 Asia \n... ... ... ... ... ... \n21413 Asia \n21414 Asia \n21415 Asia \n21416 Asia \n21417 Asia \n\n org \n0 HUAWEI TECH CO LTD (CN) \n1 TAIWAN SEMICONDUCTOR MANUFACTURING CO LTD (TW) \n2 Liu, Jinhua (CN) \n3 MEDIATEK INC (TW) \n4 NINGBO GEELY AUTOMOBILE R&D CO LTD (CN) \n... ... \n21413 CHEN, Yuli (CN) \n21414 CHEN, Zhi (CN) \n21415 Du, Jun (CN) \n21416 Chunlin, Wu (CN) \n21417 Killine Optical Ltd (MO) \n\n[21418 rows x 17 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>han_id</th>\n <th>count</th>\n <th>percent</th>\n <th>weight</th>\n <th>han_name</th>\n <th>psn_sector</th>\n <th>person_ctry_code</th>\n <th>ctry_code</th>\n <th>iso_alpha3</th>\n <th>Country</th>\n <th>organisation_flag</th>\n <th>continent</th>\n <th>eu_member</th>\n <th>epo_member</th>\n <th>oecd_member</th>\n <th>discontinued</th>\n <th>org</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>1337324</td>\n <td>1980</td>\n <td>0.092437</td>\n <td>0.022740</td>\n <td>HUAWEI TECH CO LTD</td>\n <td>COMPANY</td>\n <td>CN</td>\n <td>CN</td>\n <td>CHN</td>\n <td>China</td>\n <td></td>\n <td>Asia</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td>HUAWEI TECH CO LTD (CN)</td>\n </tr>\n <tr>\n <th>1</th>\n <td>62077</td>\n <td>406</td>\n <td>0.018954</td>\n <td>0.004663</td>\n <td>TAIWAN SEMICONDUCTOR MANUFACTURING CO LTD</td>\n <td>COMPANY</td>\n <td>TW</td>\n <td>TW</td>\n <td>TWN</td>\n <td>Taiwan Province Of China</td>\n <td></td>\n <td>Asia</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td>TAIWAN SEMICONDUCTOR MANUFACTURING CO LTD (TW)</td>\n </tr>\n <tr>\n <th>2</th>\n <td>111166343</td>\n <td>176</td>\n <td>0.008217</td>\n <td>0.002021</td>\n <td>Liu, Jinhua</td>\n <td>INDIVIDUAL</td>\n <td>CN</td>\n <td>CN</td>\n <td>CHN</td>\n <td>China</td>\n <td></td>\n <td>Asia</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td>Liu, Jinhua (CN)</td>\n </tr>\n <tr>\n <th>3</th>\n <td>1912470</td>\n <td>174</td>\n <td>0.008123</td>\n <td>0.001998</td>\n <td>MEDIATEK INC</td>\n <td>COMPANY</td>\n <td>TW</td>\n <td>TW</td>\n <td>TWN</td>\n <td>Taiwan Province Of China</td>\n <td></td>\n <td>Asia</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td>MEDIATEK INC (TW)</td>\n </tr>\n <tr>\n <th>4</th>\n <td>3697072</td>\n <td>172</td>\n <td>0.008030</td>\n <td>0.001975</td>\n <td>NINGBO GEELY AUTOMOBILE R&amp;D CO LTD</td>\n <td>COMPANY</td>\n <td>CN</td>\n <td>CN</td>\n <td>CHN</td>\n <td>China</td>\n <td></td>\n <td>Asia</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td>NINGBO GEELY AUTOMOBILE R&amp;D CO LTD (CN)</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 </tr>\n <tr>\n <th>21413</th>\n <td>149475428</td>\n <td>1</td>\n <td>0.000047</td>\n <td>0.000011</td>\n <td>CHEN, Yuli</td>\n <td>UNKNOWN</td>\n <td>CN</td>\n <td>CN</td>\n <td>CHN</td>\n <td>China</td>\n <td></td>\n <td>Asia</td>\n <td></td>\n <td></td>\n <td></td>\n <td></td>\n <td>CHEN, Yuli (CN)</td>\n </tr>\n <tr>\n <th>21414</th>\n <td>149475432</td>\n <td>1</td>\n <td>0.000047</td>\n <td>0.000011</td>\n <td>CHEN, Zhi</td>\n <td>UNKNOWN</td>\n <td>CN</td>\n <td>CN</td>\n <td>CHN</td>\n <td>China</td>\n
},
"execution_count": 183,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# China\n",
"org_collabs_ch = org_collabs[org_collabs[\"Country\"].isin(ch_names)][\"han_id\"].value_counts().reset_index()\n",
"org_collabs_ch[\"percent\"] = org_collabs_ch[\"count\"]/org_collabs[record_col].nunique()\n",
"org_collabs_ch[\"weight\"] = org_collabs_ch[\"count\"]/org_collabs[record_col].size\n",
"org_collabs_ch = org_collabs_ch.merge(pers_han, on='han_id')\n",
"org_collabs_ch[\"org\"] = org_collabs_ch[\"han_name\"].str.strip() + \" (\"+org_collabs_ch[\"person_ctry_code\"]+\")\"\n",
"org_collabs_ch"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 184,
"outputs": [
{
"data": {
"text/plain": "<matplotlib.legend.Legend at 0x24295d9dd00>"
},
"execution_count": 184,
"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": [
"data = org_collabs_ch[0:25]\n",
"g = sns.barplot(data, x=\"count\", y=\"han_name\", hue=\"psn_sector\", dodge=False)\n",
"g.set_ylabel(\"Entity\")\n",
"g.set_xlabel(\"Number of co-patents\")\n",
"for i in g.containers:\n",
" g.bar_label(i,)\n",
"g.legend(title=None)"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 185,
"outputs": [
{
"data": {
"text/plain": "<matplotlib.legend.Legend at 0x24285bfa8b0>"
},
"execution_count": 185,
"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": [
"g = sns.barplot(data, x=\"count\", y=\"han_name\", hue=\"Country\", dodge=False)\n",
"g.set_ylabel(\"Entity\")\n",
"g.set_xlabel(\"Number of co-patents\")\n",
"for i in g.containers:\n",
" g.bar_label(i,)\n",
"g.legend(title=None, loc=4)"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 186,
"outputs": [
{
"data": {
"text/plain": " han_id count percent weight han_name \n0 13378 1821 0.085014 0.020913 TELEFON AB LM ERICSSON PUBL \\\n1 68848 471 0.021989 0.005409 ALCATEL LUCENT \n2 2562294 445 0.020775 0.005111 NOKIA TECH LTD \n3 228842 403 0.018814 0.004628 BASF SE \n4 2125445 372 0.017367 0.004272 NOKIA CORP \n... ... ... ... ... ... \n19100 107891047 1 0.000047 0.000011 Goldacker, Thorsten \n19101 176254977 1 0.000047 0.000011 Dietrich, Tiantian \n19102 176256380 1 0.000047 0.000011 LAJFELD Ferdinand \n19103 176327671 1 0.000047 0.000011 GALEANO Karolina \n19104 174748097 1 0.000047 0.000011 Chen, Yunzheng \n\n psn_sector person_ctry_code ctry_code iso_alpha3 Country \n0 COMPANY SE SE SWE Sweden \\\n1 COMPANY FR FR FRA France \n2 COMPANY FI FI FIN Finland \n3 COMPANY DE DE DEU Germany \n4 COMPANY FI FI FIN Finland \n... ... ... ... ... ... \n19100 INDIVIDUAL DE DE DEU Germany \n19101 UNKNOWN DE DE DEU Germany \n19102 UNKNOWN DE DE DEU Germany \n19103 UNKNOWN DE DE DEU Germany \n19104 UNKNOWN DE DE DEU Germany \n\n organisation_flag continent eu_member epo_member oecd_member \n0 Europe Y Y Y \\\n1 Europe Y Y Y \n2 Europe Y Y Y \n3 Europe Y Y Y \n4 Europe Y Y Y \n... ... ... ... ... ... \n19100 Europe Y Y Y \n19101 Europe Y Y Y \n19102 Europe Y Y Y \n19103 Europe Y Y Y \n19104 Europe Y Y Y \n\n discontinued \n0 \n1 \n2 \n3 \n4 \n... ... \n19100 \n19101 \n19102 \n19103 \n19104 \n\n[19105 rows x 16 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>han_id</th>\n <th>count</th>\n <th>percent</th>\n <th>weight</th>\n <th>han_name</th>\n <th>psn_sector</th>\n <th>person_ctry_code</th>\n <th>ctry_code</th>\n <th>iso_alpha3</th>\n <th>Country</th>\n <th>organisation_flag</th>\n <th>continent</th>\n <th>eu_member</th>\n <th>epo_member</th>\n <th>oecd_member</th>\n <th>discontinued</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>13378</td>\n <td>1821</td>\n <td>0.085014</td>\n <td>0.020913</td>\n <td>TELEFON AB LM ERICSSON PUBL</td>\n <td>COMPANY</td>\n <td>SE</td>\n <td>SE</td>\n <td>SWE</td>\n <td>Sweden</td>\n <td></td>\n <td>Europe</td>\n <td>Y</td>\n <td>Y</td>\n <td>Y</td>\n <td></td>\n </tr>\n <tr>\n <th>1</th>\n <td>68848</td>\n <td>471</td>\n <td>0.021989</td>\n <td>0.005409</td>\n <td>ALCATEL LUCENT</td>\n <td>COMPANY</td>\n <td>FR</td>\n <td>FR</td>\n <td>FRA</td>\n <td>France</td>\n <td></td>\n <td>Europe</td>\n <td>Y</td>\n <td>Y</td>\n <td>Y</td>\n <td></td>\n </tr>\n <tr>\n <th>2</th>\n <td>2562294</td>\n <td>445</td>\n <td>0.020775</td>\n <td>0.005111</td>\n <td>NOKIA TECH LTD</td>\n <td>COMPANY</td>\n <td>FI</td>\n <td>FI</td>\n <td>FIN</td>\n <td>Finland</td>\n <td></td>\n <td>Europe</td>\n <td>Y</td>\n <td>Y</td>\n <td>Y</td>\n <td></td>\n </tr>\n <tr>\n <th>3</th>\n <td>228842</td>\n <td>403</td>\n <td>0.018814</td>\n <td>0.004628</td>\n <td>BASF SE</td>\n <td>COMPANY</td>\n <td>DE</td>\n <td>DE</td>\n <td>DEU</td>\n <td>Germany</td>\n <td></td>\n <td>Europe</td>\n <td>Y</td>\n <td>Y</td>\n <td>Y</td>\n <td></td>\n </tr>\n <tr>\n <th>4</th>\n <td>2125445</td>\n <td>372</td>\n <td>0.017367</td>\n <td>0.004272</td>\n <td>NOKIA CORP</td>\n <td>COMPANY</td>\n <td>FI</td>\n <td>FI</td>\n <td>FIN</td>\n <td>Finland</td>\n <td></td>\n <td>Europe</td>\n <td>Y</td>\n <td>Y</td>\n <td>Y</td>\n <td></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 </tr>\n <tr>\n <th>19100</th>\n <td>107891047</td>\n <td>1</td>\n <td>0.000047</td>\n <td>0.000011</td>\n <td>Goldacker, Thorsten</td>\n <td>INDIVIDUAL</td>\n <td>DE</td>\n <td>DE</td>\n <td>DEU</td>\n <td>Germany</td>\n <td></td>\n <td>Europe</td>\n <td>Y</td>\n <td>Y</td>\n <td>Y</td>\n <td></td>\n </tr>\n <tr>\n <th>19101</th>\n <td>176254977</td>\n <td>1</td>\n <td>0.000047</td>\n <td>0.000011</td>\n <td>Dietrich, Tiantian</td>\n <td>UNKNOWN</td>\n <td>DE</td>\n <td>DE</td>\n <td>DEU</td>\n <td>Germany</td>\n <td></td>\n <td>Europe</td>\n <td>Y</td>\n <td>Y</td>\n <td>Y</td>\n <td></td>\n </tr>\n <tr>\n <th>19102</th>\n <td>176256380</td>\n <td>1</td>\n <td>0.000047</td>\n <td>0.000011</td>\n <td>LAJFELD Ferdinand</td>\n <td>UNKNOWN</td>\n <td>DE</td>\n <td>DE
},
"execution_count": 186,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Eu\n",
"org_collabs_eu = org_collabs[~org_collabs[\"Country\"].isin(ch_names)][\"han_id\"].value_counts().reset_index()\n",
"org_collabs_eu[\"percent\"] = org_collabs_eu[\"count\"]/org_collabs[record_col].nunique()\n",
"org_collabs_eu[\"weight\"] = org_collabs_eu[\"count\"]/org_collabs[record_col].size\n",
"org_collabs_eu = org_collabs_eu.merge(pers_han, on='han_id')\n",
"org_collabs_eu"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 187,
"outputs": [
{
"data": {
"text/plain": "<matplotlib.legend.Legend at 0x2429909cf40>"
},
"execution_count": 187,
"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": [
"data = org_collabs_eu[0:25]\n",
"g = sns.barplot(data, x=\"count\", y=\"han_name\", hue=\"psn_sector\", dodge=False)\n",
"g.set_ylabel(\"Entity\")\n",
"g.set_xlabel(\"Number of co-patents\")\n",
"for i in g.containers:\n",
" g.bar_label(i,)\n",
"g.legend(title=None)"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 188,
"outputs": [
{
"data": {
"text/plain": "<matplotlib.legend.Legend at 0x2429b918ca0>"
},
"execution_count": 188,
"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": [
"g = sns.barplot(data, x=\"count\", y=\"han_name\", hue=\"Country\", dodge=False)\n",
"g.set_ylabel(\"Entity\")\n",
"g.set_xlabel(\"Number of co-patents\")\n",
"for i in g.containers:\n",
" g.bar_label(i,)\n",
"g.legend(title=None, loc=4)"
],
"metadata": {
"collapsed": false
}
1 year ago
},
{
"cell_type": "markdown",
"source": [
"# Patent classes?"
],
"metadata": {
"collapsed": false
}
1 year ago
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
1 year ago
}