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.
sitc/sna/5_Pandas.ipynb

473 lines
53 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"![](images/EscUpmPolit_p.gif \"UPM\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"# Course Notes for Learning Intelligent Systems"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"Department of Telematic Engineering Systems, Universidad Politécnica de Madrid, © Carlos A. Iglesias"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"## [Introduction to Network Analysis](0_Intro_Network_Analysis.ipynb)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Pandas integration"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"## Dataset Game of Thrones"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"Character Interaction Networks for George R. R. Martin's \"A Song of Ice and Fire\" saga\n",
"\n",
"Available at https://github.com/mathbeveridge/asoiaf\n",
"\n",
"Based on https://mriduls.github.io/pydata-networkx/introduction-and-game-of-thrones-instructor.html"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import networkx as nx\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib import cm\n",
"import networkx.algorithms.connectivity as nxcon\n",
"import numpy as np\n",
"import warnings\n",
"warnings.filterwarnings('ignore')\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [],
"source": [
"book1 = pd.read_csv('https://raw.githubusercontent.com/mathbeveridge/asoiaf/master/data/asoiaf-book1-edges.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"We inspect the dataset. **weight** shows the number of interactions of the characters in the book."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"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>Source</th>\n",
" <th>Target</th>\n",
" <th>Type</th>\n",
" <th>weight</th>\n",
" <th>book</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Addam-Marbrand</td>\n",
" <td>Jaime-Lannister</td>\n",
" <td>Undirected</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Addam-Marbrand</td>\n",
" <td>Tywin-Lannister</td>\n",
" <td>Undirected</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Aegon-I-Targaryen</td>\n",
" <td>Daenerys-Targaryen</td>\n",
" <td>Undirected</td>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Aegon-I-Targaryen</td>\n",
" <td>Eddard-Stark</td>\n",
" <td>Undirected</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Aemon-Targaryen-(Maester-Aemon)</td>\n",
" <td>Alliser-Thorne</td>\n",
" <td>Undirected</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Source Target Type weight \\\n",
"0 Addam-Marbrand Jaime-Lannister Undirected 3 \n",
"1 Addam-Marbrand Tywin-Lannister Undirected 6 \n",
"2 Aegon-I-Targaryen Daenerys-Targaryen Undirected 5 \n",
"3 Aegon-I-Targaryen Eddard-Stark Undirected 4 \n",
"4 Aemon-Targaryen-(Maester-Aemon) Alliser-Thorne Undirected 4 \n",
"\n",
" book \n",
"0 1 \n",
"1 1 \n",
"2 1 \n",
"3 1 \n",
"4 1 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"book1.head(5)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import networkx as nx\n",
"\n",
"G1 = nx.from_pandas_edgelist(book1, 'Source', 'Target', ['weight']) #df, source, target, [columns with attrbs]\n",
"\n",
"pos = nx.spring_layout(G1)\n",
"#pos = nx.circular_layout(G1)\n",
"#pos = nx.spectral_layout(G1)\n",
"#pos = nx.random_layout(G1)\n",
"nx.draw_networkx(G1, pos = pos, node_size=10, with_labels=False) "
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Let's inspect..."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/plain": [
"('Jaime-Lannister', 'Loras-Tyrell', {'weight': 3})"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"list(G1.edges(data=True))[16]"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Most important nodes"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/plain": [
"[('Eddard-Stark', 0.3548387096774194),\n",
" ('Robert-Baratheon', 0.2688172043010753),\n",
" ('Tyrion-Lannister', 0.24731182795698928),\n",
" ('Catelyn-Stark', 0.23118279569892475),\n",
" ('Jon-Snow', 0.19892473118279572),\n",
" ('Robb-Stark', 0.18817204301075272),\n",
" ('Sansa-Stark', 0.18817204301075272),\n",
" ('Bran-Stark', 0.17204301075268819),\n",
" ('Cersei-Lannister', 0.16129032258064518),\n",
" ('Joffrey-Baratheon', 0.16129032258064518)]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"degree_1 = nx.degree_centrality(G1)\n",
"sorted(degree_1.items(), key=lambda x:x[1], reverse=True)[0:10]"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Histogram of degree centrality"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.hist(list(nx.degree_centrality(G1).values()))\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"## References\n",
"* [NetworkX introduction](https://mriduls.github.io/pydata-networkx/introduction-and-game-of-thrones-instructor.html)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"## Licence"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"The notebook is freely licensed under under the [Creative Commons Attribution Share-Alike license](https://creativecommons.org/licenses/by/2.0/). \n",
"\n",
"© Carlos A. Iglesias, Universidad Politécnica de Madrid."
]
}
],
"metadata": {
"celltoolbar": "Slideshow",
"datacleaner": {
"position": {
"top": "50px"
},
"python": {
"varRefreshCmd": "try:\n print(_datacleaner.dataframe_metadata())\nexcept:\n print([])"
},
"window_display": false
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.12"
},
"latex_envs": {
"LaTeX_envs_menu_present": true,
"autocomplete": true,
"bibliofile": "biblio.bib",
"cite_by": "apalike",
"current_citInitial": 1,
"eqLabelWithNumbers": true,
"eqNumInitial": 1,
"hotkeys": {
"equation": "Ctrl-E",
"itemize": "Ctrl-I"
},
"labels_anchors": false,
"latex_user_defs": false,
"report_style_numbering": false,
"user_envs_cfg": false
}
},
"nbformat": 4,
"nbformat_minor": 1
}