diff --git a/.gitignore b/.gitignore index 0dca0a7f85ab664fe284fd67bbe2393869d1bb5c..8b4d39ef291258b24d930db01f6f458db6e2d694 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,8 @@ _site .DS_Store desktop.ini -confidential/ \ No newline at end of file +confidential/ +data/ +log/ +output/ +.ipynb_checkpoints/ \ No newline at end of file diff --git a/aggregated-results/.ipynb_checkpoints/sdg profiles statistics-checkpoint.ipynb b/aggregated-results/.ipynb_checkpoints/sdg profiles statistics-checkpoint.ipynb deleted file mode 100644 index ad8bdcf896e56f426a58d00645eece9d72762086..0000000000000000000000000000000000000000 --- a/aggregated-results/.ipynb_checkpoints/sdg profiles statistics-checkpoint.ipynb +++ /dev/null @@ -1,2186 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# SDG Profiles Statistics\n", - "## Working Group \"Fab Labs and Sustainable Development Goals\"\n", - "### Pieter van der Hijden (pvdh@sofos.nl)\n", - "#### Creative Commons Attribute International License - 2021 -" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Install packages" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# install packages\n", - "!sudo pip3 install pandas\n", - "!sudo pip3 install openpyxl" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Import packages" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Read Fab Lab SDG profiles from local Excel-sheet" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "<class 'pandas.core.frame.DataFrame'>\n", - "Index: 245 entries, aaltofablab to nan\n", - "Data columns (total 28 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 Tijdstempel 236 non-null datetime64[ns]\n", - " 1 E-mailadres 236 non-null object \n", - " 2 Your fullname 236 non-null object \n", - " 3 The name of your fab lab 236 non-null object \n", - " 4 Country of your fab lab 235 non-null object \n", - " 5 URL of your fab lab page on www.fablabs.io 236 non-null object \n", - " 6 Enter your SDG profile by ticking 2-4 SDGs 236 non-null object \n", - " 7 One more thing! 216 non-null object \n", - " 8 SDG 1 9 non-null object \n", - " 9 SDG 2 13 non-null object \n", - " 10 SDG 3 26 non-null object \n", - " 11 SDG 4 189 non-null object \n", - " 12 SDG 5 75 non-null object \n", - " 13 SDG 6 14 non-null object \n", - " 14 SDG 7 33 non-null object \n", - " 15 SDG 8 67 non-null object \n", - " 16 SDG 9 154 non-null object \n", - " 17 SDG 10 23 non-null object \n", - " 18 SDG 11 80 non-null object \n", - " 19 SDG 12 102 non-null object \n", - " 20 SDG 13 24 non-null object \n", - " 21 SDG 14 7 non-null object \n", - " 22 SDG 15 17 non-null object \n", - " 23 SDG 16 2 non-null object \n", - " 24 SDG 17 41 non-null object \n", - " 25 summary 245 non-null object \n", - " 26 status 245 non-null object \n", - " 27 check 222 non-null object \n", - "dtypes: datetime64[ns](1), object(27)\n", - "memory usage: 28.7+ KB\n" - ] - } - ], - "source": [ - "# Read Excel-sheet with fab lab profile records\n", - "profiles=pd.read_excel('Fab Lab SDG Profile Registration.xlsx', 'processing', index_col=27)\n", - "#profile_path='https://gitlab.fabcloud.org/fl-management/fl-sdgs/sdg-workshop/-/blob/master/aggregated-results/'\n", - "#profile_file='Fab%20Lab%20SDG%20Profile%20Registration.xlsx'\n", - "#url = profile_path + profile_file\n", - "#profiles=pd.read_excel(url, 'processing', index_col=27)\n", - "profiles.info()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Delete verbose columns 6-7" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "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>Tijdstempel</th>\n", - " <th>E-mailadres</th>\n", - " <th>Your fullname</th>\n", - " <th>The name of your fab lab</th>\n", - " <th>Country of your fab lab</th>\n", - " <th>URL of your fab lab page on www.fablabs.io</th>\n", - " <th>SDG 1</th>\n", - " <th>SDG 2</th>\n", - " <th>SDG 3</th>\n", - " <th>SDG 4</th>\n", - " <th>...</th>\n", - " <th>SDG 11</th>\n", - " <th>SDG 12</th>\n", - " <th>SDG 13</th>\n", - " <th>SDG 14</th>\n", - " <th>SDG 15</th>\n", - " <th>SDG 16</th>\n", - " <th>SDG 17</th>\n", - " <th>summary</th>\n", - " <th>status</th>\n", - " <th>check</th>\n", - " </tr>\n", - " <tr>\n", - " <th>slug</th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>aaltofablab</th>\n", - " <td>2018-07-20</td>\n", - " <td>cindy.kohtala@aalto.fi</td>\n", - " <td>Cindy Kohtala</td>\n", - " <td>Aalto Fablab, Helsinki</td>\n", - " <td>Finland</td>\n", - " <td>https://www.fablabs.io/labs/aaltofablab</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>SDG-04-08-09-17</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>artilectfablab</th>\n", - " <td>2018-07-20</td>\n", - " <td>vincent.glachant@gmail.com</td>\n", - " <td>Vincent Glachant</td>\n", - " <td>Artilect FabLab, Toulouse</td>\n", - " <td>France</td>\n", - " <td>https://www.fablabs.io/labs/artilectfablab</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>SDG-04-07-10-12</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>fablabcuenca</th>\n", - " <td>2018-07-20</td>\n", - " <td>fablabcuenca@gmail.com</td>\n", - " <td>Delia Millán</td>\n", - " <td>FabLab Cuenca, Cuenca</td>\n", - " <td>Spain</td>\n", - " <td>https://www.fablabs.io/labs/fablabcuenca</td>\n", - " <td>x</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>SDG-01-04-05-07</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>fablabspinderihallerne</th>\n", - " <td>2018-07-20</td>\n", - " <td>lorenzo.eight@gmail.com</td>\n", - " <td>Lorenzo Negri</td>\n", - " <td>Fablab Spinderihallerne, Vejle</td>\n", - " <td>Denmark</td>\n", - " <td>https://www.fablabs.io/labs/fablabspinderihall...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>SDG-04-05-10-12</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>fablabsuriname</th>\n", - " <td>2018-07-20</td>\n", - " <td>pvdh@sofos.nl</td>\n", - " <td>Pieter van der Hijden</td>\n", - " <td>Fab Lab Suriname</td>\n", - " <td>Suriname</td>\n", - " <td>https://www.fablabs.io/labs/fablabsuriname</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>SDG-04-08-09-17</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>5 rows × 26 columns</p>\n", - "</div>" - ], - "text/plain": [ - " Tijdstempel E-mailadres \\\n", - "slug \n", - "aaltofablab 2018-07-20 cindy.kohtala@aalto.fi \n", - "artilectfablab 2018-07-20 vincent.glachant@gmail.com \n", - "fablabcuenca 2018-07-20 fablabcuenca@gmail.com \n", - "fablabspinderihallerne 2018-07-20 lorenzo.eight@gmail.com \n", - "fablabsuriname 2018-07-20 pvdh@sofos.nl \n", - "\n", - " Your fullname The name of your fab lab \\\n", - "slug \n", - "aaltofablab Cindy Kohtala Aalto Fablab, Helsinki \n", - "artilectfablab Vincent Glachant Artilect FabLab, Toulouse \n", - "fablabcuenca Delia Millán FabLab Cuenca, Cuenca \n", - "fablabspinderihallerne Lorenzo Negri Fablab Spinderihallerne, Vejle \n", - "fablabsuriname Pieter van der Hijden Fab Lab Suriname \n", - "\n", - " Country of your fab lab \\\n", - "slug \n", - "aaltofablab Finland \n", - "artilectfablab France \n", - "fablabcuenca Spain \n", - "fablabspinderihallerne Denmark \n", - "fablabsuriname Suriname \n", - "\n", - " URL of your fab lab page on www.fablabs.io \\\n", - "slug \n", - "aaltofablab https://www.fablabs.io/labs/aaltofablab \n", - "artilectfablab https://www.fablabs.io/labs/artilectfablab \n", - "fablabcuenca https://www.fablabs.io/labs/fablabcuenca \n", - "fablabspinderihallerne https://www.fablabs.io/labs/fablabspinderihall... \n", - "fablabsuriname https://www.fablabs.io/labs/fablabsuriname \n", - "\n", - " SDG 1 SDG 2 SDG 3 SDG 4 ... SDG 11 SDG 12 SDG 13 \\\n", - "slug ... \n", - "aaltofablab NaN NaN NaN x ... NaN NaN NaN \n", - "artilectfablab NaN NaN NaN x ... NaN x NaN \n", - "fablabcuenca x NaN NaN x ... NaN NaN NaN \n", - "fablabspinderihallerne NaN NaN NaN x ... NaN x NaN \n", - "fablabsuriname NaN NaN NaN x ... NaN NaN NaN \n", - "\n", - " SDG 14 SDG 15 SDG 16 SDG 17 summary status \\\n", - "slug \n", - "aaltofablab NaN NaN NaN x SDG-04-08-09-17 orange \n", - "artilectfablab NaN NaN NaN NaN SDG-04-07-10-12 orange \n", - "fablabcuenca NaN NaN NaN NaN SDG-01-04-05-07 orange \n", - "fablabspinderihallerne NaN NaN NaN NaN SDG-04-05-10-12 orange \n", - "fablabsuriname NaN NaN NaN x SDG-04-08-09-17 orange \n", - "\n", - " check \n", - "slug \n", - "aaltofablab OK \n", - "artilectfablab OK \n", - "fablabcuenca OK \n", - "fablabspinderihallerne OK \n", - "fablabsuriname OK \n", - "\n", - "[5 rows x 26 columns]" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "del profiles['Enter your SDG profile by ticking 2-4 SDGs']\n", - "del profiles['One more thing!']\n", - "profiles.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Skip empty rows" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "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>Tijdstempel</th>\n", - " <th>E-mailadres</th>\n", - " <th>Your fullname</th>\n", - " <th>The name of your fab lab</th>\n", - " <th>Country of your fab lab</th>\n", - " <th>URL of your fab lab page on www.fablabs.io</th>\n", - " <th>SDG 1</th>\n", - " <th>SDG 2</th>\n", - " <th>SDG 3</th>\n", - " <th>SDG 4</th>\n", - " <th>...</th>\n", - " <th>SDG 11</th>\n", - " <th>SDG 12</th>\n", - " <th>SDG 13</th>\n", - " <th>SDG 14</th>\n", - " <th>SDG 15</th>\n", - " <th>SDG 16</th>\n", - " <th>SDG 17</th>\n", - " <th>summary</th>\n", - " <th>status</th>\n", - " <th>check</th>\n", - " </tr>\n", - " <tr>\n", - " <th>slug</th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>aaltofablab</th>\n", - " <td>2018-07-20</td>\n", - " <td>cindy.kohtala@aalto.fi</td>\n", - " <td>Cindy Kohtala</td>\n", - " <td>Aalto Fablab, Helsinki</td>\n", - " <td>Finland</td>\n", - " <td>https://www.fablabs.io/labs/aaltofablab</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>SDG-04-08-09-17</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>artilectfablab</th>\n", - " <td>2018-07-20</td>\n", - " <td>vincent.glachant@gmail.com</td>\n", - " <td>Vincent Glachant</td>\n", - " <td>Artilect FabLab, Toulouse</td>\n", - " <td>France</td>\n", - " <td>https://www.fablabs.io/labs/artilectfablab</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>SDG-04-07-10-12</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>fablabcuenca</th>\n", - " <td>2018-07-20</td>\n", - " <td>fablabcuenca@gmail.com</td>\n", - " <td>Delia Millán</td>\n", - " <td>FabLab Cuenca, Cuenca</td>\n", - " <td>Spain</td>\n", - " <td>https://www.fablabs.io/labs/fablabcuenca</td>\n", - " <td>x</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>SDG-01-04-05-07</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>fablabspinderihallerne</th>\n", - " <td>2018-07-20</td>\n", - " <td>lorenzo.eight@gmail.com</td>\n", - " <td>Lorenzo Negri</td>\n", - " <td>Fablab Spinderihallerne, Vejle</td>\n", - " <td>Denmark</td>\n", - " <td>https://www.fablabs.io/labs/fablabspinderihall...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>SDG-04-05-10-12</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>fablabsuriname</th>\n", - " <td>2018-07-20</td>\n", - " <td>pvdh@sofos.nl</td>\n", - " <td>Pieter van der Hijden</td>\n", - " <td>Fab Lab Suriname</td>\n", - " <td>Suriname</td>\n", - " <td>https://www.fablabs.io/labs/fablabsuriname</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>SDG-04-08-09-17</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>5 rows × 26 columns</p>\n", - "</div>" - ], - "text/plain": [ - " Tijdstempel E-mailadres \\\n", - "slug \n", - "aaltofablab 2018-07-20 cindy.kohtala@aalto.fi \n", - "artilectfablab 2018-07-20 vincent.glachant@gmail.com \n", - "fablabcuenca 2018-07-20 fablabcuenca@gmail.com \n", - "fablabspinderihallerne 2018-07-20 lorenzo.eight@gmail.com \n", - "fablabsuriname 2018-07-20 pvdh@sofos.nl \n", - "\n", - " Your fullname The name of your fab lab \\\n", - "slug \n", - "aaltofablab Cindy Kohtala Aalto Fablab, Helsinki \n", - "artilectfablab Vincent Glachant Artilect FabLab, Toulouse \n", - "fablabcuenca Delia Millán FabLab Cuenca, Cuenca \n", - "fablabspinderihallerne Lorenzo Negri Fablab Spinderihallerne, Vejle \n", - "fablabsuriname Pieter van der Hijden Fab Lab Suriname \n", - "\n", - " Country of your fab lab \\\n", - "slug \n", - "aaltofablab Finland \n", - "artilectfablab France \n", - "fablabcuenca Spain \n", - "fablabspinderihallerne Denmark \n", - "fablabsuriname Suriname \n", - "\n", - " URL of your fab lab page on www.fablabs.io \\\n", - "slug \n", - "aaltofablab https://www.fablabs.io/labs/aaltofablab \n", - "artilectfablab https://www.fablabs.io/labs/artilectfablab \n", - "fablabcuenca https://www.fablabs.io/labs/fablabcuenca \n", - "fablabspinderihallerne https://www.fablabs.io/labs/fablabspinderihall... \n", - "fablabsuriname https://www.fablabs.io/labs/fablabsuriname \n", - "\n", - " SDG 1 SDG 2 SDG 3 SDG 4 ... SDG 11 SDG 12 SDG 13 \\\n", - "slug ... \n", - "aaltofablab NaN NaN NaN x ... NaN NaN NaN \n", - "artilectfablab NaN NaN NaN x ... NaN x NaN \n", - "fablabcuenca x NaN NaN x ... NaN NaN NaN \n", - "fablabspinderihallerne NaN NaN NaN x ... NaN x NaN \n", - "fablabsuriname NaN NaN NaN x ... NaN NaN NaN \n", - "\n", - " SDG 14 SDG 15 SDG 16 SDG 17 summary status \\\n", - "slug \n", - "aaltofablab NaN NaN NaN x SDG-04-08-09-17 orange \n", - "artilectfablab NaN NaN NaN NaN SDG-04-07-10-12 orange \n", - "fablabcuenca NaN NaN NaN NaN SDG-01-04-05-07 orange \n", - "fablabspinderihallerne NaN NaN NaN NaN SDG-04-05-10-12 orange \n", - "fablabsuriname NaN NaN NaN x SDG-04-08-09-17 orange \n", - "\n", - " check \n", - "slug \n", - "aaltofablab OK \n", - "artilectfablab OK \n", - "fablabcuenca OK \n", - "fablabspinderihallerne OK \n", - "fablabsuriname OK \n", - "\n", - "[5 rows x 26 columns]" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "profiles = profiles.loc[profiles['Tijdstempel'].notna()]\n", - "profiles.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Filter 01 in SDG Profile Summary" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "ename": "KeyError", - "evalue": "False", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3079\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3080\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3081\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine._get_loc_duplicates\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine._maybe_get_bool_indexer\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine._unpack_bool_indexer\u001b[0;34m()\u001b[0m\n", - "\u001b[0;31mKeyError\u001b[0m: False", - "\nThe above exception was the direct cause of the following exception:\n", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m<ipython-input-42-dce8bbd606bb>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Filter x in SDG Profile Summary\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprofiles\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'SDG-03'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mprofiles\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'summary'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 893\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 894\u001b[0m \u001b[0mmaybe_callable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcom\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_if_callable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 895\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmaybe_callable\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 896\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 897\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_is_scalar_access\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mTuple\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_getitem_axis\u001b[0;34m(self, key, axis)\u001b[0m\n\u001b[1;32m 1122\u001b[0m \u001b[0;31m# fall thru to straight lookup\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1123\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_key\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1124\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1125\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1126\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_get_slice_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mslice_obj\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mslice\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_get_label\u001b[0;34m(self, label, axis)\u001b[0m\n\u001b[1;32m 1071\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_get_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1072\u001b[0m \u001b[0;31m# GH#5667 this will fail if the label is not present in the axis.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1073\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1074\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1075\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_handle_lowerdim_multi_index_axis0\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtup\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mTuple\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36mxs\u001b[0;34m(self, key, axis, level, drop_level)\u001b[0m\n\u001b[1;32m 3737\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Expected label or tuple of labels, got {key}\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3738\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3739\u001b[0;31m \u001b[0mloc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3740\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3741\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndarray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3080\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3081\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3082\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3083\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3084\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtolerance\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mKeyError\u001b[0m: False" - ] - } - ], - "source": [ - "# Filter x in SDG Profile Summary\n", - "x = profiles.loc['SDG-03' in profiles['summary']]\n", - "x\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Read fablabs.io records from online JSON-file" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "<class 'pandas.core.frame.DataFrame'>\n", - "RangeIndex: 2001 entries, 0 to 2000\n", - "Data columns (total 23 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 id 2001 non-null int64 \n", - " 1 name 2001 non-null object \n", - " 2 kind_name 2001 non-null object \n", - " 3 parent_id 681 non-null float64\n", - " 4 blurb 1954 non-null object \n", - " 5 description 1972 non-null object \n", - " 6 slug 2001 non-null object \n", - " 7 avatar_url 1639 non-null object \n", - " 8 header_url 1310 non-null object \n", - " 9 address_1 1973 non-null object \n", - " 10 address_2 1971 non-null object \n", - " 11 city 2001 non-null object \n", - " 12 county 2001 non-null object \n", - " 13 postal_code 1999 non-null object \n", - " 14 country_code 2001 non-null object \n", - " 15 latitude 1834 non-null float64\n", - " 16 longitude 1834 non-null float64\n", - " 17 address_notes 1972 non-null object \n", - " 18 phone 1972 non-null object \n", - " 19 email 1972 non-null object \n", - " 20 capabilities 2001 non-null object \n", - " 21 activity_status 1409 non-null object \n", - " 22 links 2001 non-null object \n", - "dtypes: float64(3), int64(1), object(19)\n", - "memory usage: 211.1+ KB\n" - ] - }, - { - "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>id</th>\n", - " <th>name</th>\n", - " <th>kind_name</th>\n", - " <th>parent_id</th>\n", - " <th>blurb</th>\n", - " <th>description</th>\n", - " <th>slug</th>\n", - " <th>avatar_url</th>\n", - " <th>header_url</th>\n", - " <th>address_1</th>\n", - " <th>...</th>\n", - " <th>postal_code</th>\n", - " <th>country_code</th>\n", - " <th>latitude</th>\n", - " <th>longitude</th>\n", - " <th>address_notes</th>\n", - " <th>phone</th>\n", - " <th>email</th>\n", - " <th>capabilities</th>\n", - " <th>activity_status</th>\n", - " <th>links</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>17</td>\n", - " <td>PiNG</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>ping</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>...</td>\n", - " <td>44000</td>\n", - " <td>FR</td>\n", - " <td>47.218371</td>\n", - " <td>-1.553621</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>[]</td>\n", - " <td>None</td>\n", - " <td>[{'id': 52, 'url': 'http://fablab.pingbase.net'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>20</td>\n", - " <td>FabLab INSA Strasbourg</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>fablabinsastrasbourg</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>...</td>\n", - " <td>67000</td>\n", - " <td>FR</td>\n", - " <td>48.583148</td>\n", - " <td>7.747882</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>[]</td>\n", - " <td>None</td>\n", - " <td>[{'id': 55, 'url': 'http://www.ideaslab.fr'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>793</td>\n", - " <td>FabLab Zagreb</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>First FabLab in Zagreb and Croatia, with visio...</td>\n", - " <td>FabLab in Zagreb is first in Croatia founded t...</td>\n", - " <td>fablabhr</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/05/25/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/21/...</td>\n", - " <td>Ilica 69</td>\n", - " <td>...</td>\n", - " <td>10000</td>\n", - " <td>HR</td>\n", - " <td>45.812096</td>\n", - " <td>15.965438</td>\n", - " <td></td>\n", - " <td>+38513755436</td>\n", - " <td>info@fablab.hr</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 1323, 'url': 'http://www.fablab.hr'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>1206</td>\n", - " <td>Fab Lab Irbid</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>Fablab Irbid is Jordan's first and largest dig...</td>\n", - " <td>FabLab Irbid is the first Fab Lab in Jordan in...</td>\n", - " <td>fablabirbid</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2019/02/06/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2017/05/14/...</td>\n", - " <td>Irbid Development Zone</td>\n", - " <td>...</td>\n", - " <td></td>\n", - " <td>JO</td>\n", - " <td>32.488820</td>\n", - " <td>35.976346</td>\n", - " <td>Link to google maps: https://goo.gl/maps/Bq7y6...</td>\n", - " <td>+96207 9920 7198</td>\n", - " <td>nadine@shamalstart.com</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 2130, 'url': 'https://www.shamalstart....</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>892</td>\n", - " <td>FABLAB KERALA - Trivandrum</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>With the support of Government of Kerala, KSUM...</td>\n", - " <td>With the support of Government of Kerala, KSUM...</td>\n", - " <td>fablabtrivandrum</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2018/08/01/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/11/05/...</td>\n", - " <td>Kerala Startup Mission (KSUM)</td>\n", - " <td>...</td>\n", - " <td>699581</td>\n", - " <td>IN</td>\n", - " <td>8.557167</td>\n", - " <td>76.880297</td>\n", - " <td></td>\n", - " <td>+91 9809494669</td>\n", - " <td>fablab@startupmission.in</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 1563, 'url': 'http://www.startupmissio...</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>1996</th>\n", - " <td>1587</td>\n", - " <td>TechWorks Amman</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>TechWorks is CPF’s flagship innovation platfor...</td>\n", - " <td>TechWorks is CPF’s flagship innovation platfor...</td>\n", - " <td>fablabjordan</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/20/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/20/...</td>\n", - " <td>King Hussein Business Park</td>\n", - " <td>...</td>\n", - " <td></td>\n", - " <td>JO</td>\n", - " <td>31.971502</td>\n", - " <td>35.832792</td>\n", - " <td>Next to GROW Building side door entrance</td>\n", - " <td>00962791000110</td>\n", - " <td>info@techworks.jo</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 29176, 'url': 'https://youtu.be/zLt3aO...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1997</th>\n", - " <td>1730</td>\n", - " <td>BISCAST ManFabLab</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>Naga's leading center of idea generation and s...</td>\n", - " <td>Formed between the partnership of Bicol State ...</td>\n", - " <td>biscastmanfablab</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2018/06/01/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2018/10/08/...</td>\n", - " <td>98 Penafrancia Ave.</td>\n", - " <td>...</td>\n", - " <td>4400</td>\n", - " <td>PH</td>\n", - " <td>13.636209</td>\n", - " <td>123.199228</td>\n", - " <td></td>\n", - " <td></td>\n", - " <td>biscast.manfablab@gmail.com</td>\n", - " <td>[three_d_printing, cnc_milling, laser, precisi...</td>\n", - " <td>active</td>\n", - " <td>[]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1998</th>\n", - " <td>1538</td>\n", - " <td>MakersLab</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>MakersLab is a learning and prototyping space ...</td>\n", - " <td>MakersLab (Ede, the Netherlands) is open to an...</td>\n", - " <td>makerslab</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/06/16/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2017/09/25/...</td>\n", - " <td>Bovenbuurtweg 7</td>\n", - " <td>...</td>\n", - " <td>6717XA</td>\n", - " <td>NL</td>\n", - " <td>52.022091</td>\n", - " <td>5.661235</td>\n", - " <td>Our bright yellow colors should give away our ...</td>\n", - " <td>+31 318 455180</td>\n", - " <td>info@makerslab.nl</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 4968, 'url': 'http://www.makerslab.nl/'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1999</th>\n", - " <td>2210</td>\n", - " <td>FabLab L'Aquila</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>FabLabAQ is a group of people hold together by...</td>\n", - " <td>FabLab L’Aquila Association\\r\\n\\r\\nL'Aquila's ...</td>\n", - " <td>fablabaq</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/02/07/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/02/07/...</td>\n", - " <td>Via Giuseppe Mezzanotte</td>\n", - " <td>...</td>\n", - " <td>67100</td>\n", - " <td>IT</td>\n", - " <td>42.354660</td>\n", - " <td>13.413750</td>\n", - " <td></td>\n", - " <td>+393927629526</td>\n", - " <td>info@fablaquila.org</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 30617, 'url': 'https://www.instagram.c...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2000</th>\n", - " <td>2230</td>\n", - " <td>ZapLab</td>\n", - " <td>fab_lab</td>\n", - " <td>133.0</td>\n", - " <td>ZapLab @ Villa Zapakara in Paramaribo, Surinam...</td>\n", - " <td>ZapLab will operate according to sustainable d...</td>\n", - " <td>ZapLab</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/06/19/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/05/...</td>\n", - " <td>Prins Hendrikstraat 17B</td>\n", - " <td>...</td>\n", - " <td></td>\n", - " <td>SR</td>\n", - " <td>5.833524</td>\n", - " <td>-55.151134</td>\n", - " <td>ZapLab @ Villa Zapakara</td>\n", - " <td>+597 422212</td>\n", - " <td>zaplab@villazapakara.com</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 30791, 'url': 'https://www.youtube.com...</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>2001 rows × 23 columns</p>\n", - "</div>" - ], - "text/plain": [ - " id name kind_name parent_id \\\n", - "0 17 PiNG fab_lab NaN \n", - "1 20 FabLab INSA Strasbourg fab_lab NaN \n", - "2 793 FabLab Zagreb fab_lab NaN \n", - "3 1206 Fab Lab Irbid fab_lab NaN \n", - "4 892 FABLAB KERALA - Trivandrum fab_lab NaN \n", - "... ... ... ... ... \n", - "1996 1587 TechWorks Amman fab_lab NaN \n", - "1997 1730 BISCAST ManFabLab fab_lab NaN \n", - "1998 1538 MakersLab fab_lab NaN \n", - "1999 2210 FabLab L'Aquila fab_lab NaN \n", - "2000 2230 ZapLab fab_lab 133.0 \n", - "\n", - " blurb \\\n", - "0 None \n", - "1 None \n", - "2 First FabLab in Zagreb and Croatia, with visio... \n", - "3 Fablab Irbid is Jordan's first and largest dig... \n", - "4 With the support of Government of Kerala, KSUM... \n", - "... ... \n", - "1996 TechWorks is CPF’s flagship innovation platfor... \n", - "1997 Naga's leading center of idea generation and s... \n", - "1998 MakersLab is a learning and prototyping space ... \n", - "1999 FabLabAQ is a group of people hold together by... \n", - "2000 ZapLab @ Villa Zapakara in Paramaribo, Surinam... \n", - "\n", - " description slug \\\n", - "0 None ping \n", - "1 None fablabinsastrasbourg \n", - "2 FabLab in Zagreb is first in Croatia founded t... fablabhr \n", - "3 FabLab Irbid is the first Fab Lab in Jordan in... fablabirbid \n", - "4 With the support of Government of Kerala, KSUM... fablabtrivandrum \n", - "... ... ... \n", - "1996 TechWorks is CPF’s flagship innovation platfor... fablabjordan \n", - "1997 Formed between the partnership of Bicol State ... biscastmanfablab \n", - "1998 MakersLab (Ede, the Netherlands) is open to an... makerslab \n", - "1999 FabLab L’Aquila Association\\r\\n\\r\\nL'Aquila's ... fablabaq \n", - "2000 ZapLab will operate according to sustainable d... ZapLab \n", - "\n", - " avatar_url \\\n", - "0 None \n", - "1 None \n", - "2 http://fablabs.io.s3.amazonaws.com/2020/05/25/... \n", - "3 http://fablabs.io.s3.amazonaws.com/2019/02/06/... \n", - "4 http://fablabs.io.s3.amazonaws.com/2018/08/01/... \n", - "... ... \n", - "1996 http://fablabs.io.s3.amazonaws.com/2021/01/20/... \n", - "1997 http://fablabs.io.s3.amazonaws.com/2018/06/01/... \n", - "1998 http://fablabs.io.s3.amazonaws.com/2020/06/16/... \n", - "1999 http://fablabs.io.s3.amazonaws.com/2020/02/07/... \n", - "2000 http://fablabs.io.s3.amazonaws.com/2020/06/19/... \n", - "\n", - " header_url \\\n", - "0 None \n", - "1 None \n", - "2 http://fablabs.io.s3.amazonaws.com/2021/01/21/... \n", - "3 http://fablabs.io.s3.amazonaws.com/2017/05/14/... \n", - "4 http://fablabs.io.s3.amazonaws.com/2020/11/05/... \n", - "... ... \n", - "1996 http://fablabs.io.s3.amazonaws.com/2021/01/20/... \n", - "1997 http://fablabs.io.s3.amazonaws.com/2018/10/08/... \n", - "1998 http://fablabs.io.s3.amazonaws.com/2017/09/25/... \n", - "1999 http://fablabs.io.s3.amazonaws.com/2020/02/07/... \n", - "2000 http://fablabs.io.s3.amazonaws.com/2021/01/05/... \n", - "\n", - " address_1 ... postal_code country_code latitude \\\n", - "0 None ... 44000 FR 47.218371 \n", - "1 None ... 67000 FR 48.583148 \n", - "2 Ilica 69 ... 10000 HR 45.812096 \n", - "3 Irbid Development Zone ... JO 32.488820 \n", - "4 Kerala Startup Mission (KSUM) ... 699581 IN 8.557167 \n", - "... ... ... ... ... ... \n", - "1996 King Hussein Business Park ... JO 31.971502 \n", - "1997 98 Penafrancia Ave. ... 4400 PH 13.636209 \n", - "1998 Bovenbuurtweg 7 ... 6717XA NL 52.022091 \n", - "1999 Via Giuseppe Mezzanotte ... 67100 IT 42.354660 \n", - "2000 Prins Hendrikstraat 17B ... SR 5.833524 \n", - "\n", - " longitude address_notes \\\n", - "0 -1.553621 None \n", - "1 7.747882 None \n", - "2 15.965438 \n", - "3 35.976346 Link to google maps: https://goo.gl/maps/Bq7y6... \n", - "4 76.880297 \n", - "... ... ... \n", - "1996 35.832792 Next to GROW Building side door entrance \n", - "1997 123.199228 \n", - "1998 5.661235 Our bright yellow colors should give away our ... \n", - "1999 13.413750 \n", - "2000 -55.151134 ZapLab @ Villa Zapakara \n", - "\n", - " phone email \\\n", - "0 None None \n", - "1 None None \n", - "2 +38513755436 info@fablab.hr \n", - "3 +96207 9920 7198 nadine@shamalstart.com \n", - "4 +91 9809494669 fablab@startupmission.in \n", - "... ... ... \n", - "1996 00962791000110 info@techworks.jo \n", - "1997 biscast.manfablab@gmail.com \n", - "1998 +31 318 455180 info@makerslab.nl \n", - "1999 +393927629526 info@fablaquila.org \n", - "2000 +597 422212 zaplab@villazapakara.com \n", - "\n", - " capabilities activity_status \\\n", - "0 [] None \n", - "1 [] None \n", - "2 [three_d_printing, cnc_milling, circuit_produc... active \n", - "3 [three_d_printing, cnc_milling, circuit_produc... active \n", - "4 [three_d_printing, cnc_milling, circuit_produc... active \n", - "... ... ... \n", - "1996 [three_d_printing, cnc_milling, circuit_produc... active \n", - "1997 [three_d_printing, cnc_milling, laser, precisi... active \n", - "1998 [three_d_printing, cnc_milling, circuit_produc... active \n", - "1999 [three_d_printing, cnc_milling, circuit_produc... active \n", - "2000 [three_d_printing, cnc_milling, circuit_produc... active \n", - "\n", - " links \n", - "0 [{'id': 52, 'url': 'http://fablab.pingbase.net'}] \n", - "1 [{'id': 55, 'url': 'http://www.ideaslab.fr'}] \n", - "2 [{'id': 1323, 'url': 'http://www.fablab.hr'}] \n", - "3 [{'id': 2130, 'url': 'https://www.shamalstart.... \n", - "4 [{'id': 1563, 'url': 'http://www.startupmissio... \n", - "... ... \n", - "1996 [{'id': 29176, 'url': 'https://youtu.be/zLt3aO... \n", - "1997 [] \n", - "1998 [{'id': 4968, 'url': 'http://www.makerslab.nl/'}] \n", - "1999 [{'id': 30617, 'url': 'https://www.instagram.c... \n", - "2000 [{'id': 30791, 'url': 'https://www.youtube.com... \n", - "\n", - "[2001 rows x 23 columns]" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Read JSON-file with fablabs.io records\n", - "fablabs=pd.read_json('https://fablabs.io/labs.json?class=btn+btn-primary')\n", - "fablabs.info()\n", - "fablabs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## List fab labs with activity_status == \"closed\"" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "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>activity_status</th>\n", - " <th>country_code</th>\n", - " <th>city</th>\n", - " <th>name</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>20</th>\n", - " <td>closed</td>\n", - " <td>IT</td>\n", - " <td>Cascina</td>\n", - " <td>Fab Lab Toscana Cascina</td>\n", - " </tr>\n", - " <tr>\n", - " <th>26</th>\n", - " <td>closed</td>\n", - " <td>FR</td>\n", - " <td>La Rochelle</td>\n", - " <td>Les établis&co</td>\n", - " </tr>\n", - " <tr>\n", - " <th>51</th>\n", - " <td>closed</td>\n", - " <td>FR</td>\n", - " <td>Havre (Le)</td>\n", - " <td>fermé</td>\n", - " </tr>\n", - " <tr>\n", - " <th>85</th>\n", - " <td>closed</td>\n", - " <td>NL</td>\n", - " <td>Breda</td>\n", - " <td>FabLab Breda / moved to library</td>\n", - " </tr>\n", - " <tr>\n", - " <th>101</th>\n", - " <td>closed</td>\n", - " <td>IT</td>\n", - " <td>Mercato San Severino</td>\n", - " <td>3DBell FabLab</td>\n", - " </tr>\n", - " <tr>\n", - " <th>105</th>\n", - " <td>closed</td>\n", - " <td>NZ</td>\n", - " <td>Wellington</td>\n", - " <td>Fab Lab Wgtn, New Zealand</td>\n", - " </tr>\n", - " <tr>\n", - " <th>195</th>\n", - " <td>closed</td>\n", - " <td>GB</td>\n", - " <td>Ellesmere Port</td>\n", - " <td>Fab Lab Ellesmere Port</td>\n", - " </tr>\n", - " <tr>\n", - " <th>289</th>\n", - " <td>closed</td>\n", - " <td>FR</td>\n", - " <td>Val-de-Reuil</td>\n", - " <td>FabLab 276 Val-de-Reuil</td>\n", - " </tr>\n", - " <tr>\n", - " <th>331</th>\n", - " <td>closed</td>\n", - " <td>AR</td>\n", - " <td></td>\n", - " <td>Tacuru // DELETED// CLOSE</td>\n", - " </tr>\n", - " <tr>\n", - " <th>437</th>\n", - " <td>closed</td>\n", - " <td>US</td>\n", - " <td></td>\n", - " <td>Omaha Nebraska, United States</td>\n", - " </tr>\n", - " <tr>\n", - " <th>457</th>\n", - " <td>closed</td>\n", - " <td>IN</td>\n", - " <td>Dantewada</td>\n", - " <td>Innovation Lab, Palnar</td>\n", - " </tr>\n", - " <tr>\n", - " <th>458</th>\n", - " <td>closed</td>\n", - " <td>EC</td>\n", - " <td>Urcuqui</td>\n", - " <td>FabLab YACHAY</td>\n", - " </tr>\n", - " <tr>\n", - " <th>477</th>\n", - " <td>closed</td>\n", - " <td>DK</td>\n", - " <td>København</td>\n", - " <td>Fablab TI</td>\n", - " </tr>\n", - " <tr>\n", - " <th>500</th>\n", - " <td>closed</td>\n", - " <td>FR</td>\n", - " <td></td>\n", - " <td>Rupellab - fablab La Rochelle</td>\n", - " </tr>\n", - " <tr>\n", - " <th>655</th>\n", - " <td>closed</td>\n", - " <td>PL</td>\n", - " <td>Zielona Góra</td>\n", - " <td>Fabryka Pasji</td>\n", - " </tr>\n", - " <tr>\n", - " <th>693</th>\n", - " <td>closed</td>\n", - " <td>CR</td>\n", - " <td></td>\n", - " <td>Instituto Tecnologico de Costa Rica</td>\n", - " </tr>\n", - " <tr>\n", - " <th>698</th>\n", - " <td>closed</td>\n", - " <td>GB</td>\n", - " <td>Manchester</td>\n", - " <td>Fab Lab Manchester</td>\n", - " </tr>\n", - " <tr>\n", - " <th>766</th>\n", - " <td>closed</td>\n", - " <td>CH</td>\n", - " <td>Lausanne</td>\n", - " <td>Fablab HEP Vaud</td>\n", - " </tr>\n", - " <tr>\n", - " <th>789</th>\n", - " <td>closed</td>\n", - " <td>BR</td>\n", - " <td>Porto Alegre</td>\n", - " <td>Fabrique Lab</td>\n", - " </tr>\n", - " <tr>\n", - " <th>793</th>\n", - " <td>closed</td>\n", - " <td>BR</td>\n", - " <td>Florianópolis</td>\n", - " <td>Fab Lab Floripa</td>\n", - " </tr>\n", - " <tr>\n", - " <th>812</th>\n", - " <td>closed</td>\n", - " <td>KR</td>\n", - " <td>Gwacheon-si</td>\n", - " <td>Idea Factory in Gwacheon National Science Museum</td>\n", - " </tr>\n", - " <tr>\n", - " <th>873</th>\n", - " <td>closed</td>\n", - " <td>BR</td>\n", - " <td>brasil</td>\n", - " <td>Laboratório</td>\n", - " </tr>\n", - " <tr>\n", - " <th>881</th>\n", - " <td>closed</td>\n", - " <td>GB</td>\n", - " <td>Glasgow</td>\n", - " <td>MAKLAB</td>\n", - " </tr>\n", - " <tr>\n", - " <th>883</th>\n", - " <td>closed</td>\n", - " <td>CH</td>\n", - " <td>Genève</td>\n", - " <td>Onl'Fait</td>\n", - " </tr>\n", - " <tr>\n", - " <th>919</th>\n", - " <td>closed</td>\n", - " <td>FR</td>\n", - " <td>Cannes</td>\n", - " <td>la refabrique</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1054</th>\n", - " <td>closed</td>\n", - " <td>BE</td>\n", - " <td>Brugge</td>\n", - " <td>eco-fab-lab</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1067</th>\n", - " <td>closed</td>\n", - " <td>FR</td>\n", - " <td>Les Ulis</td>\n", - " <td>Fab Lab Mobile</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1104</th>\n", - " <td>closed</td>\n", - " <td>GB</td>\n", - " <td>London</td>\n", - " <td>Fab Lab London</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1116</th>\n", - " <td>closed</td>\n", - " <td>LU</td>\n", - " <td>Belval</td>\n", - " <td>Technoport FabLabs (Belval & Differdange)</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1126</th>\n", - " <td>closed</td>\n", - " <td>RW</td>\n", - " <td></td>\n", - " <td>DUPLICATE</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1224</th>\n", - " <td>closed</td>\n", - " <td>FR</td>\n", - " <td></td>\n", - " <td>ZZZ_OLD___Info @ Leze</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1327</th>\n", - " <td>closed</td>\n", - " <td>SI</td>\n", - " <td>Ljubljana</td>\n", - " <td>fablabljubljana</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1353</th>\n", - " <td>closed</td>\n", - " <td>IT</td>\n", - " <td>Padova</td>\n", - " <td>FabLab Padova</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1369</th>\n", - " <td>closed</td>\n", - " <td>BR</td>\n", - " <td>Jaguariúna</td>\n", - " <td>FabLab FAJ</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1396</th>\n", - " <td>closed</td>\n", - " <td>IT</td>\n", - " <td>Faenza</td>\n", - " <td>FabLab Faenza</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1417</th>\n", - " <td>closed</td>\n", - " <td>GB</td>\n", - " <td>Dumfries</td>\n", - " <td>MAKLAB - Dumfries</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1610</th>\n", - " <td>closed</td>\n", - " <td>US</td>\n", - " <td>Bellingham</td>\n", - " <td>The Foundry; Bellingham</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1693</th>\n", - " <td>closed</td>\n", - " <td>AR</td>\n", - " <td>La Plata</td>\n", - " <td>DELETED</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1709</th>\n", - " <td>closed</td>\n", - " <td>JO</td>\n", - " <td>Amman</td>\n", - " <td>Fab Lab Amman</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1714</th>\n", - " <td>closed</td>\n", - " <td>PT</td>\n", - " <td>Caldas da Rainha</td>\n", - " <td>Fablab Caldas da Rainha</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1744</th>\n", - " <td>closed</td>\n", - " <td>IT</td>\n", - " <td></td>\n", - " <td>FabCube</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1783</th>\n", - " <td>closed</td>\n", - " <td>AU</td>\n", - " <td>Munster</td>\n", - " <td>FabLab WA</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1808</th>\n", - " <td>closed</td>\n", - " <td>EG</td>\n", - " <td>6th of October City</td>\n", - " <td>Fab Lab 6 October</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1913</th>\n", - " <td>closed</td>\n", - " <td>IL</td>\n", - " <td>Jerusalem</td>\n", - " <td>NBEL Innovation Workshops</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1919</th>\n", - " <td>closed</td>\n", - " <td>BR</td>\n", - " <td>São Paulo</td>\n", - " <td>PortoFabLab</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1959</th>\n", - " <td>closed</td>\n", - " <td>DE</td>\n", - " <td>Detmold</td>\n", - " <td>FabLab OWL</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "</div>" - ], - "text/plain": [ - " activity_status country_code city \\\n", - "20 closed IT Cascina \n", - "26 closed FR La Rochelle \n", - "51 closed FR Havre (Le) \n", - "85 closed NL Breda \n", - "101 closed IT Mercato San Severino \n", - "105 closed NZ Wellington \n", - "195 closed GB Ellesmere Port \n", - "289 closed FR Val-de-Reuil \n", - "331 closed AR \n", - "437 closed US \n", - "457 closed IN Dantewada \n", - "458 closed EC Urcuqui \n", - "477 closed DK København \n", - "500 closed FR \n", - "655 closed PL Zielona Góra \n", - "693 closed CR \n", - "698 closed GB Manchester \n", - "766 closed CH Lausanne \n", - "789 closed BR Porto Alegre \n", - "793 closed BR Florianópolis \n", - "812 closed KR Gwacheon-si \n", - "873 closed BR brasil \n", - "881 closed GB Glasgow \n", - "883 closed CH Genève \n", - "919 closed FR Cannes \n", - "1054 closed BE Brugge \n", - "1067 closed FR Les Ulis \n", - "1104 closed GB London \n", - "1116 closed LU Belval \n", - "1126 closed RW \n", - "1224 closed FR \n", - "1327 closed SI Ljubljana \n", - "1353 closed IT Padova \n", - "1369 closed BR Jaguariúna \n", - "1396 closed IT Faenza \n", - "1417 closed GB Dumfries \n", - "1610 closed US Bellingham \n", - "1693 closed AR La Plata \n", - "1709 closed JO Amman \n", - "1714 closed PT Caldas da Rainha \n", - "1744 closed IT \n", - "1783 closed AU Munster \n", - "1808 closed EG 6th of October City \n", - "1913 closed IL Jerusalem \n", - "1919 closed BR São Paulo \n", - "1959 closed DE Detmold \n", - "\n", - " name \n", - "20 Fab Lab Toscana Cascina \n", - "26 Les établis&co \n", - "51 fermé \n", - "85 FabLab Breda / moved to library \n", - "101 3DBell FabLab \n", - "105 Fab Lab Wgtn, New Zealand \n", - "195 Fab Lab Ellesmere Port \n", - "289 FabLab 276 Val-de-Reuil \n", - "331 Tacuru // DELETED// CLOSE \n", - "437 Omaha Nebraska, United States \n", - "457 Innovation Lab, Palnar \n", - "458 FabLab YACHAY \n", - "477 Fablab TI \n", - "500 Rupellab - fablab La Rochelle \n", - "655 Fabryka Pasji \n", - "693 Instituto Tecnologico de Costa Rica \n", - "698 Fab Lab Manchester \n", - "766 Fablab HEP Vaud \n", - "789 Fabrique Lab \n", - "793 Fab Lab Floripa \n", - "812 Idea Factory in Gwacheon National Science Museum \n", - "873 Laboratório \n", - "881 MAKLAB \n", - "883 Onl'Fait \n", - "919 la refabrique \n", - "1054 eco-fab-lab \n", - "1067 Fab Lab Mobile \n", - "1104 Fab Lab London \n", - "1116 Technoport FabLabs (Belval & Differdange) \n", - "1126 DUPLICATE \n", - "1224 ZZZ_OLD___Info @ Leze \n", - "1327 fablabljubljana \n", - "1353 FabLab Padova \n", - "1369 FabLab FAJ \n", - "1396 FabLab Faenza \n", - "1417 MAKLAB - Dumfries \n", - "1610 The Foundry; Bellingham \n", - "1693 DELETED \n", - "1709 Fab Lab Amman \n", - "1714 Fablab Caldas da Rainha \n", - "1744 FabCube \n", - "1783 FabLab WA \n", - "1808 Fab Lab 6 October \n", - "1913 NBEL Innovation Workshops \n", - "1919 PortoFabLab \n", - "1959 FabLab OWL " - ] - }, - "execution_count": 88, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# List fab labs with activity_status == \"closed\"\n", - "closed = fablabs.loc[fablabs['activity_status'] == 'closed', ['activity_status', 'country_code', 'city', 'name']]\n", - "closed" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Skip fablabs with activity_status == \"closed\"" - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "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>id</th>\n", - " <th>name</th>\n", - " <th>kind_name</th>\n", - " <th>parent_id</th>\n", - " <th>blurb</th>\n", - " <th>description</th>\n", - " <th>slug</th>\n", - " <th>avatar_url</th>\n", - " <th>header_url</th>\n", - " <th>address_1</th>\n", - " <th>...</th>\n", - " <th>postal_code</th>\n", - " <th>country_code</th>\n", - " <th>latitude</th>\n", - " <th>longitude</th>\n", - " <th>address_notes</th>\n", - " <th>phone</th>\n", - " <th>email</th>\n", - " <th>capabilities</th>\n", - " <th>activity_status</th>\n", - " <th>links</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>17</td>\n", - " <td>PiNG</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>ping</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>...</td>\n", - " <td>44000</td>\n", - " <td>FR</td>\n", - " <td>47.218371</td>\n", - " <td>-1.553621</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>[]</td>\n", - " <td>None</td>\n", - " <td>[{'id': 52, 'url': 'http://fablab.pingbase.net'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>20</td>\n", - " <td>FabLab INSA Strasbourg</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>fablabinsastrasbourg</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>...</td>\n", - " <td>67000</td>\n", - " <td>FR</td>\n", - " <td>48.583148</td>\n", - " <td>7.747882</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>[]</td>\n", - " <td>None</td>\n", - " <td>[{'id': 55, 'url': 'http://www.ideaslab.fr'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>793</td>\n", - " <td>FabLab Zagreb</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>First FabLab in Zagreb and Croatia, with visio...</td>\n", - " <td>FabLab in Zagreb is first in Croatia founded t...</td>\n", - " <td>fablabhr</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/05/25/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/21/...</td>\n", - " <td>Ilica 69</td>\n", - " <td>...</td>\n", - " <td>10000</td>\n", - " <td>HR</td>\n", - " <td>45.812096</td>\n", - " <td>15.965438</td>\n", - " <td></td>\n", - " <td>+38513755436</td>\n", - " <td>info@fablab.hr</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 1323, 'url': 'http://www.fablab.hr'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>1206</td>\n", - " <td>Fab Lab Irbid</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>Fablab Irbid is Jordan's first and largest dig...</td>\n", - " <td>FabLab Irbid is the first Fab Lab in Jordan in...</td>\n", - " <td>fablabirbid</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2019/02/06/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2017/05/14/...</td>\n", - " <td>Irbid Development Zone</td>\n", - " <td>...</td>\n", - " <td></td>\n", - " <td>JO</td>\n", - " <td>32.488820</td>\n", - " <td>35.976346</td>\n", - " <td>Link to google maps: https://goo.gl/maps/Bq7y6...</td>\n", - " <td>+96207 9920 7198</td>\n", - " <td>nadine@shamalstart.com</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 2130, 'url': 'https://www.shamalstart....</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>892</td>\n", - " <td>FABLAB KERALA - Trivandrum</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>With the support of Government of Kerala, KSUM...</td>\n", - " <td>With the support of Government of Kerala, KSUM...</td>\n", - " <td>fablabtrivandrum</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2018/08/01/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/11/05/...</td>\n", - " <td>Kerala Startup Mission (KSUM)</td>\n", - " <td>...</td>\n", - " <td>699581</td>\n", - " <td>IN</td>\n", - " <td>8.557167</td>\n", - " <td>76.880297</td>\n", - " <td></td>\n", - " <td>+91 9809494669</td>\n", - " <td>fablab@startupmission.in</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 1563, 'url': 'http://www.startupmissio...</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>1996</th>\n", - " <td>1587</td>\n", - " <td>TechWorks Amman</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>TechWorks is CPF’s flagship innovation platfor...</td>\n", - " <td>TechWorks is CPF’s flagship innovation platfor...</td>\n", - " <td>fablabjordan</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/20/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/20/...</td>\n", - " <td>King Hussein Business Park</td>\n", - " <td>...</td>\n", - " <td></td>\n", - " <td>JO</td>\n", - " <td>31.971502</td>\n", - " <td>35.832792</td>\n", - " <td>Next to GROW Building side door entrance</td>\n", - " <td>00962791000110</td>\n", - " <td>info@techworks.jo</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 29176, 'url': 'https://youtu.be/zLt3aO...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1997</th>\n", - " <td>1730</td>\n", - " <td>BISCAST ManFabLab</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>Naga's leading center of idea generation and s...</td>\n", - " <td>Formed between the partnership of Bicol State ...</td>\n", - " <td>biscastmanfablab</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2018/06/01/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2018/10/08/...</td>\n", - " <td>98 Penafrancia Ave.</td>\n", - " <td>...</td>\n", - " <td>4400</td>\n", - " <td>PH</td>\n", - " <td>13.636209</td>\n", - " <td>123.199228</td>\n", - " <td></td>\n", - " <td></td>\n", - " <td>biscast.manfablab@gmail.com</td>\n", - " <td>[three_d_printing, cnc_milling, laser, precisi...</td>\n", - " <td>active</td>\n", - " <td>[]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1998</th>\n", - " <td>1538</td>\n", - " <td>MakersLab</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>MakersLab is a learning and prototyping space ...</td>\n", - " <td>MakersLab (Ede, the Netherlands) is open to an...</td>\n", - " <td>makerslab</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/06/16/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2017/09/25/...</td>\n", - " <td>Bovenbuurtweg 7</td>\n", - " <td>...</td>\n", - " <td>6717XA</td>\n", - " <td>NL</td>\n", - " <td>52.022091</td>\n", - " <td>5.661235</td>\n", - " <td>Our bright yellow colors should give away our ...</td>\n", - " <td>+31 318 455180</td>\n", - " <td>info@makerslab.nl</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 4968, 'url': 'http://www.makerslab.nl/'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1999</th>\n", - " <td>2210</td>\n", - " <td>FabLab L'Aquila</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>FabLabAQ is a group of people hold together by...</td>\n", - " <td>FabLab L’Aquila Association\\r\\n\\r\\nL'Aquila's ...</td>\n", - " <td>fablabaq</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/02/07/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/02/07/...</td>\n", - " <td>Via Giuseppe Mezzanotte</td>\n", - " <td>...</td>\n", - " <td>67100</td>\n", - " <td>IT</td>\n", - " <td>42.354660</td>\n", - " <td>13.413750</td>\n", - " <td></td>\n", - " <td>+393927629526</td>\n", - " <td>info@fablaquila.org</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 30617, 'url': 'https://www.instagram.c...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2000</th>\n", - " <td>2230</td>\n", - " <td>ZapLab</td>\n", - " <td>fab_lab</td>\n", - " <td>133.0</td>\n", - " <td>ZapLab @ Villa Zapakara in Paramaribo, Surinam...</td>\n", - " <td>ZapLab will operate according to sustainable d...</td>\n", - " <td>ZapLab</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/06/19/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/05/...</td>\n", - " <td>Prins Hendrikstraat 17B</td>\n", - " <td>...</td>\n", - " <td></td>\n", - " <td>SR</td>\n", - " <td>5.833524</td>\n", - " <td>-55.151134</td>\n", - " <td>ZapLab @ Villa Zapakara</td>\n", - " <td>+597 422212</td>\n", - " <td>zaplab@villazapakara.com</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 30791, 'url': 'https://www.youtube.com...</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>1955 rows × 23 columns</p>\n", - "</div>" - ], - "text/plain": [ - " id name kind_name parent_id \\\n", - "0 17 PiNG fab_lab NaN \n", - "1 20 FabLab INSA Strasbourg fab_lab NaN \n", - "2 793 FabLab Zagreb fab_lab NaN \n", - "3 1206 Fab Lab Irbid fab_lab NaN \n", - "4 892 FABLAB KERALA - Trivandrum fab_lab NaN \n", - "... ... ... ... ... \n", - "1996 1587 TechWorks Amman fab_lab NaN \n", - "1997 1730 BISCAST ManFabLab fab_lab NaN \n", - "1998 1538 MakersLab fab_lab NaN \n", - "1999 2210 FabLab L'Aquila fab_lab NaN \n", - "2000 2230 ZapLab fab_lab 133.0 \n", - "\n", - " blurb \\\n", - "0 None \n", - "1 None \n", - "2 First FabLab in Zagreb and Croatia, with visio... \n", - "3 Fablab Irbid is Jordan's first and largest dig... \n", - "4 With the support of Government of Kerala, KSUM... \n", - "... ... \n", - "1996 TechWorks is CPF’s flagship innovation platfor... \n", - "1997 Naga's leading center of idea generation and s... \n", - "1998 MakersLab is a learning and prototyping space ... \n", - "1999 FabLabAQ is a group of people hold together by... \n", - "2000 ZapLab @ Villa Zapakara in Paramaribo, Surinam... \n", - "\n", - " description slug \\\n", - "0 None ping \n", - "1 None fablabinsastrasbourg \n", - "2 FabLab in Zagreb is first in Croatia founded t... fablabhr \n", - "3 FabLab Irbid is the first Fab Lab in Jordan in... fablabirbid \n", - "4 With the support of Government of Kerala, KSUM... fablabtrivandrum \n", - "... ... ... \n", - "1996 TechWorks is CPF’s flagship innovation platfor... fablabjordan \n", - "1997 Formed between the partnership of Bicol State ... biscastmanfablab \n", - "1998 MakersLab (Ede, the Netherlands) is open to an... makerslab \n", - "1999 FabLab L’Aquila Association\\r\\n\\r\\nL'Aquila's ... fablabaq \n", - "2000 ZapLab will operate according to sustainable d... ZapLab \n", - "\n", - " avatar_url \\\n", - "0 None \n", - "1 None \n", - "2 http://fablabs.io.s3.amazonaws.com/2020/05/25/... \n", - "3 http://fablabs.io.s3.amazonaws.com/2019/02/06/... \n", - "4 http://fablabs.io.s3.amazonaws.com/2018/08/01/... \n", - "... ... \n", - "1996 http://fablabs.io.s3.amazonaws.com/2021/01/20/... \n", - "1997 http://fablabs.io.s3.amazonaws.com/2018/06/01/... \n", - "1998 http://fablabs.io.s3.amazonaws.com/2020/06/16/... \n", - "1999 http://fablabs.io.s3.amazonaws.com/2020/02/07/... \n", - "2000 http://fablabs.io.s3.amazonaws.com/2020/06/19/... \n", - "\n", - " header_url \\\n", - "0 None \n", - "1 None \n", - "2 http://fablabs.io.s3.amazonaws.com/2021/01/21/... \n", - "3 http://fablabs.io.s3.amazonaws.com/2017/05/14/... \n", - "4 http://fablabs.io.s3.amazonaws.com/2020/11/05/... \n", - "... ... \n", - "1996 http://fablabs.io.s3.amazonaws.com/2021/01/20/... \n", - "1997 http://fablabs.io.s3.amazonaws.com/2018/10/08/... \n", - "1998 http://fablabs.io.s3.amazonaws.com/2017/09/25/... \n", - "1999 http://fablabs.io.s3.amazonaws.com/2020/02/07/... \n", - "2000 http://fablabs.io.s3.amazonaws.com/2021/01/05/... \n", - "\n", - " address_1 ... postal_code country_code latitude \\\n", - "0 None ... 44000 FR 47.218371 \n", - "1 None ... 67000 FR 48.583148 \n", - "2 Ilica 69 ... 10000 HR 45.812096 \n", - "3 Irbid Development Zone ... JO 32.488820 \n", - "4 Kerala Startup Mission (KSUM) ... 699581 IN 8.557167 \n", - "... ... ... ... ... ... \n", - "1996 King Hussein Business Park ... JO 31.971502 \n", - "1997 98 Penafrancia Ave. ... 4400 PH 13.636209 \n", - "1998 Bovenbuurtweg 7 ... 6717XA NL 52.022091 \n", - "1999 Via Giuseppe Mezzanotte ... 67100 IT 42.354660 \n", - "2000 Prins Hendrikstraat 17B ... SR 5.833524 \n", - "\n", - " longitude address_notes \\\n", - "0 -1.553621 None \n", - "1 7.747882 None \n", - "2 15.965438 \n", - "3 35.976346 Link to google maps: https://goo.gl/maps/Bq7y6... \n", - "4 76.880297 \n", - "... ... ... \n", - "1996 35.832792 Next to GROW Building side door entrance \n", - "1997 123.199228 \n", - "1998 5.661235 Our bright yellow colors should give away our ... \n", - "1999 13.413750 \n", - "2000 -55.151134 ZapLab @ Villa Zapakara \n", - "\n", - " phone email \\\n", - "0 None None \n", - "1 None None \n", - "2 +38513755436 info@fablab.hr \n", - "3 +96207 9920 7198 nadine@shamalstart.com \n", - "4 +91 9809494669 fablab@startupmission.in \n", - "... ... ... \n", - "1996 00962791000110 info@techworks.jo \n", - "1997 biscast.manfablab@gmail.com \n", - "1998 +31 318 455180 info@makerslab.nl \n", - "1999 +393927629526 info@fablaquila.org \n", - "2000 +597 422212 zaplab@villazapakara.com \n", - "\n", - " capabilities activity_status \\\n", - "0 [] None \n", - "1 [] None \n", - "2 [three_d_printing, cnc_milling, circuit_produc... active \n", - "3 [three_d_printing, cnc_milling, circuit_produc... active \n", - "4 [three_d_printing, cnc_milling, circuit_produc... active \n", - "... ... ... \n", - "1996 [three_d_printing, cnc_milling, circuit_produc... active \n", - "1997 [three_d_printing, cnc_milling, laser, precisi... active \n", - "1998 [three_d_printing, cnc_milling, circuit_produc... active \n", - "1999 [three_d_printing, cnc_milling, circuit_produc... active \n", - "2000 [three_d_printing, cnc_milling, circuit_produc... active \n", - "\n", - " links \n", - "0 [{'id': 52, 'url': 'http://fablab.pingbase.net'}] \n", - "1 [{'id': 55, 'url': 'http://www.ideaslab.fr'}] \n", - "2 [{'id': 1323, 'url': 'http://www.fablab.hr'}] \n", - "3 [{'id': 2130, 'url': 'https://www.shamalstart.... \n", - "4 [{'id': 1563, 'url': 'http://www.startupmissio... \n", - "... ... \n", - "1996 [{'id': 29176, 'url': 'https://youtu.be/zLt3aO... \n", - "1997 [] \n", - "1998 [{'id': 4968, 'url': 'http://www.makerslab.nl/'}] \n", - "1999 [{'id': 30617, 'url': 'https://www.instagram.c... \n", - "2000 [{'id': 30791, 'url': 'https://www.youtube.com... \n", - "\n", - "[1955 rows x 23 columns]" - ] - }, - "execution_count": 89, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Skip fablabs with activity_status == \"closed\"\n", - "fablabs = fablabs[fablabs['activity_status'] != 'closed']\n", - "fablabs" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "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.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/aggregated-results/sdg profiles statistics.ipynb b/aggregated-results/sdg profiles statistics.ipynb deleted file mode 100644 index ad8bdcf896e56f426a58d00645eece9d72762086..0000000000000000000000000000000000000000 --- a/aggregated-results/sdg profiles statistics.ipynb +++ /dev/null @@ -1,2186 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# SDG Profiles Statistics\n", - "## Working Group \"Fab Labs and Sustainable Development Goals\"\n", - "### Pieter van der Hijden (pvdh@sofos.nl)\n", - "#### Creative Commons Attribute International License - 2021 -" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Install packages" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# install packages\n", - "!sudo pip3 install pandas\n", - "!sudo pip3 install openpyxl" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Import packages" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Read Fab Lab SDG profiles from local Excel-sheet" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "<class 'pandas.core.frame.DataFrame'>\n", - "Index: 245 entries, aaltofablab to nan\n", - "Data columns (total 28 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 Tijdstempel 236 non-null datetime64[ns]\n", - " 1 E-mailadres 236 non-null object \n", - " 2 Your fullname 236 non-null object \n", - " 3 The name of your fab lab 236 non-null object \n", - " 4 Country of your fab lab 235 non-null object \n", - " 5 URL of your fab lab page on www.fablabs.io 236 non-null object \n", - " 6 Enter your SDG profile by ticking 2-4 SDGs 236 non-null object \n", - " 7 One more thing! 216 non-null object \n", - " 8 SDG 1 9 non-null object \n", - " 9 SDG 2 13 non-null object \n", - " 10 SDG 3 26 non-null object \n", - " 11 SDG 4 189 non-null object \n", - " 12 SDG 5 75 non-null object \n", - " 13 SDG 6 14 non-null object \n", - " 14 SDG 7 33 non-null object \n", - " 15 SDG 8 67 non-null object \n", - " 16 SDG 9 154 non-null object \n", - " 17 SDG 10 23 non-null object \n", - " 18 SDG 11 80 non-null object \n", - " 19 SDG 12 102 non-null object \n", - " 20 SDG 13 24 non-null object \n", - " 21 SDG 14 7 non-null object \n", - " 22 SDG 15 17 non-null object \n", - " 23 SDG 16 2 non-null object \n", - " 24 SDG 17 41 non-null object \n", - " 25 summary 245 non-null object \n", - " 26 status 245 non-null object \n", - " 27 check 222 non-null object \n", - "dtypes: datetime64[ns](1), object(27)\n", - "memory usage: 28.7+ KB\n" - ] - } - ], - "source": [ - "# Read Excel-sheet with fab lab profile records\n", - "profiles=pd.read_excel('Fab Lab SDG Profile Registration.xlsx', 'processing', index_col=27)\n", - "#profile_path='https://gitlab.fabcloud.org/fl-management/fl-sdgs/sdg-workshop/-/blob/master/aggregated-results/'\n", - "#profile_file='Fab%20Lab%20SDG%20Profile%20Registration.xlsx'\n", - "#url = profile_path + profile_file\n", - "#profiles=pd.read_excel(url, 'processing', index_col=27)\n", - "profiles.info()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Delete verbose columns 6-7" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "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>Tijdstempel</th>\n", - " <th>E-mailadres</th>\n", - " <th>Your fullname</th>\n", - " <th>The name of your fab lab</th>\n", - " <th>Country of your fab lab</th>\n", - " <th>URL of your fab lab page on www.fablabs.io</th>\n", - " <th>SDG 1</th>\n", - " <th>SDG 2</th>\n", - " <th>SDG 3</th>\n", - " <th>SDG 4</th>\n", - " <th>...</th>\n", - " <th>SDG 11</th>\n", - " <th>SDG 12</th>\n", - " <th>SDG 13</th>\n", - " <th>SDG 14</th>\n", - " <th>SDG 15</th>\n", - " <th>SDG 16</th>\n", - " <th>SDG 17</th>\n", - " <th>summary</th>\n", - " <th>status</th>\n", - " <th>check</th>\n", - " </tr>\n", - " <tr>\n", - " <th>slug</th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>aaltofablab</th>\n", - " <td>2018-07-20</td>\n", - " <td>cindy.kohtala@aalto.fi</td>\n", - " <td>Cindy Kohtala</td>\n", - " <td>Aalto Fablab, Helsinki</td>\n", - " <td>Finland</td>\n", - " <td>https://www.fablabs.io/labs/aaltofablab</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>SDG-04-08-09-17</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>artilectfablab</th>\n", - " <td>2018-07-20</td>\n", - " <td>vincent.glachant@gmail.com</td>\n", - " <td>Vincent Glachant</td>\n", - " <td>Artilect FabLab, Toulouse</td>\n", - " <td>France</td>\n", - " <td>https://www.fablabs.io/labs/artilectfablab</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>SDG-04-07-10-12</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>fablabcuenca</th>\n", - " <td>2018-07-20</td>\n", - " <td>fablabcuenca@gmail.com</td>\n", - " <td>Delia Millán</td>\n", - " <td>FabLab Cuenca, Cuenca</td>\n", - " <td>Spain</td>\n", - " <td>https://www.fablabs.io/labs/fablabcuenca</td>\n", - " <td>x</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>SDG-01-04-05-07</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>fablabspinderihallerne</th>\n", - " <td>2018-07-20</td>\n", - " <td>lorenzo.eight@gmail.com</td>\n", - " <td>Lorenzo Negri</td>\n", - " <td>Fablab Spinderihallerne, Vejle</td>\n", - " <td>Denmark</td>\n", - " <td>https://www.fablabs.io/labs/fablabspinderihall...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>SDG-04-05-10-12</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>fablabsuriname</th>\n", - " <td>2018-07-20</td>\n", - " <td>pvdh@sofos.nl</td>\n", - " <td>Pieter van der Hijden</td>\n", - " <td>Fab Lab Suriname</td>\n", - " <td>Suriname</td>\n", - " <td>https://www.fablabs.io/labs/fablabsuriname</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>SDG-04-08-09-17</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>5 rows × 26 columns</p>\n", - "</div>" - ], - "text/plain": [ - " Tijdstempel E-mailadres \\\n", - "slug \n", - "aaltofablab 2018-07-20 cindy.kohtala@aalto.fi \n", - "artilectfablab 2018-07-20 vincent.glachant@gmail.com \n", - "fablabcuenca 2018-07-20 fablabcuenca@gmail.com \n", - "fablabspinderihallerne 2018-07-20 lorenzo.eight@gmail.com \n", - "fablabsuriname 2018-07-20 pvdh@sofos.nl \n", - "\n", - " Your fullname The name of your fab lab \\\n", - "slug \n", - "aaltofablab Cindy Kohtala Aalto Fablab, Helsinki \n", - "artilectfablab Vincent Glachant Artilect FabLab, Toulouse \n", - "fablabcuenca Delia Millán FabLab Cuenca, Cuenca \n", - "fablabspinderihallerne Lorenzo Negri Fablab Spinderihallerne, Vejle \n", - "fablabsuriname Pieter van der Hijden Fab Lab Suriname \n", - "\n", - " Country of your fab lab \\\n", - "slug \n", - "aaltofablab Finland \n", - "artilectfablab France \n", - "fablabcuenca Spain \n", - "fablabspinderihallerne Denmark \n", - "fablabsuriname Suriname \n", - "\n", - " URL of your fab lab page on www.fablabs.io \\\n", - "slug \n", - "aaltofablab https://www.fablabs.io/labs/aaltofablab \n", - "artilectfablab https://www.fablabs.io/labs/artilectfablab \n", - "fablabcuenca https://www.fablabs.io/labs/fablabcuenca \n", - "fablabspinderihallerne https://www.fablabs.io/labs/fablabspinderihall... \n", - "fablabsuriname https://www.fablabs.io/labs/fablabsuriname \n", - "\n", - " SDG 1 SDG 2 SDG 3 SDG 4 ... SDG 11 SDG 12 SDG 13 \\\n", - "slug ... \n", - "aaltofablab NaN NaN NaN x ... NaN NaN NaN \n", - "artilectfablab NaN NaN NaN x ... NaN x NaN \n", - "fablabcuenca x NaN NaN x ... NaN NaN NaN \n", - "fablabspinderihallerne NaN NaN NaN x ... NaN x NaN \n", - "fablabsuriname NaN NaN NaN x ... NaN NaN NaN \n", - "\n", - " SDG 14 SDG 15 SDG 16 SDG 17 summary status \\\n", - "slug \n", - "aaltofablab NaN NaN NaN x SDG-04-08-09-17 orange \n", - "artilectfablab NaN NaN NaN NaN SDG-04-07-10-12 orange \n", - "fablabcuenca NaN NaN NaN NaN SDG-01-04-05-07 orange \n", - "fablabspinderihallerne NaN NaN NaN NaN SDG-04-05-10-12 orange \n", - "fablabsuriname NaN NaN NaN x SDG-04-08-09-17 orange \n", - "\n", - " check \n", - "slug \n", - "aaltofablab OK \n", - "artilectfablab OK \n", - "fablabcuenca OK \n", - "fablabspinderihallerne OK \n", - "fablabsuriname OK \n", - "\n", - "[5 rows x 26 columns]" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "del profiles['Enter your SDG profile by ticking 2-4 SDGs']\n", - "del profiles['One more thing!']\n", - "profiles.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Skip empty rows" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "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>Tijdstempel</th>\n", - " <th>E-mailadres</th>\n", - " <th>Your fullname</th>\n", - " <th>The name of your fab lab</th>\n", - " <th>Country of your fab lab</th>\n", - " <th>URL of your fab lab page on www.fablabs.io</th>\n", - " <th>SDG 1</th>\n", - " <th>SDG 2</th>\n", - " <th>SDG 3</th>\n", - " <th>SDG 4</th>\n", - " <th>...</th>\n", - " <th>SDG 11</th>\n", - " <th>SDG 12</th>\n", - " <th>SDG 13</th>\n", - " <th>SDG 14</th>\n", - " <th>SDG 15</th>\n", - " <th>SDG 16</th>\n", - " <th>SDG 17</th>\n", - " <th>summary</th>\n", - " <th>status</th>\n", - " <th>check</th>\n", - " </tr>\n", - " <tr>\n", - " <th>slug</th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " <th></th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>aaltofablab</th>\n", - " <td>2018-07-20</td>\n", - " <td>cindy.kohtala@aalto.fi</td>\n", - " <td>Cindy Kohtala</td>\n", - " <td>Aalto Fablab, Helsinki</td>\n", - " <td>Finland</td>\n", - " <td>https://www.fablabs.io/labs/aaltofablab</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>SDG-04-08-09-17</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>artilectfablab</th>\n", - " <td>2018-07-20</td>\n", - " <td>vincent.glachant@gmail.com</td>\n", - " <td>Vincent Glachant</td>\n", - " <td>Artilect FabLab, Toulouse</td>\n", - " <td>France</td>\n", - " <td>https://www.fablabs.io/labs/artilectfablab</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>SDG-04-07-10-12</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>fablabcuenca</th>\n", - " <td>2018-07-20</td>\n", - " <td>fablabcuenca@gmail.com</td>\n", - " <td>Delia Millán</td>\n", - " <td>FabLab Cuenca, Cuenca</td>\n", - " <td>Spain</td>\n", - " <td>https://www.fablabs.io/labs/fablabcuenca</td>\n", - " <td>x</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>SDG-01-04-05-07</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>fablabspinderihallerne</th>\n", - " <td>2018-07-20</td>\n", - " <td>lorenzo.eight@gmail.com</td>\n", - " <td>Lorenzo Negri</td>\n", - " <td>Fablab Spinderihallerne, Vejle</td>\n", - " <td>Denmark</td>\n", - " <td>https://www.fablabs.io/labs/fablabspinderihall...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>SDG-04-05-10-12</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " <tr>\n", - " <th>fablabsuriname</th>\n", - " <td>2018-07-20</td>\n", - " <td>pvdh@sofos.nl</td>\n", - " <td>Pieter van der Hijden</td>\n", - " <td>Fab Lab Suriname</td>\n", - " <td>Suriname</td>\n", - " <td>https://www.fablabs.io/labs/fablabsuriname</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>...</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>NaN</td>\n", - " <td>x</td>\n", - " <td>SDG-04-08-09-17</td>\n", - " <td>orange</td>\n", - " <td>OK</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>5 rows × 26 columns</p>\n", - "</div>" - ], - "text/plain": [ - " Tijdstempel E-mailadres \\\n", - "slug \n", - "aaltofablab 2018-07-20 cindy.kohtala@aalto.fi \n", - "artilectfablab 2018-07-20 vincent.glachant@gmail.com \n", - "fablabcuenca 2018-07-20 fablabcuenca@gmail.com \n", - "fablabspinderihallerne 2018-07-20 lorenzo.eight@gmail.com \n", - "fablabsuriname 2018-07-20 pvdh@sofos.nl \n", - "\n", - " Your fullname The name of your fab lab \\\n", - "slug \n", - "aaltofablab Cindy Kohtala Aalto Fablab, Helsinki \n", - "artilectfablab Vincent Glachant Artilect FabLab, Toulouse \n", - "fablabcuenca Delia Millán FabLab Cuenca, Cuenca \n", - "fablabspinderihallerne Lorenzo Negri Fablab Spinderihallerne, Vejle \n", - "fablabsuriname Pieter van der Hijden Fab Lab Suriname \n", - "\n", - " Country of your fab lab \\\n", - "slug \n", - "aaltofablab Finland \n", - "artilectfablab France \n", - "fablabcuenca Spain \n", - "fablabspinderihallerne Denmark \n", - "fablabsuriname Suriname \n", - "\n", - " URL of your fab lab page on www.fablabs.io \\\n", - "slug \n", - "aaltofablab https://www.fablabs.io/labs/aaltofablab \n", - "artilectfablab https://www.fablabs.io/labs/artilectfablab \n", - "fablabcuenca https://www.fablabs.io/labs/fablabcuenca \n", - "fablabspinderihallerne https://www.fablabs.io/labs/fablabspinderihall... \n", - "fablabsuriname https://www.fablabs.io/labs/fablabsuriname \n", - "\n", - " SDG 1 SDG 2 SDG 3 SDG 4 ... SDG 11 SDG 12 SDG 13 \\\n", - "slug ... \n", - "aaltofablab NaN NaN NaN x ... NaN NaN NaN \n", - "artilectfablab NaN NaN NaN x ... NaN x NaN \n", - "fablabcuenca x NaN NaN x ... NaN NaN NaN \n", - "fablabspinderihallerne NaN NaN NaN x ... NaN x NaN \n", - "fablabsuriname NaN NaN NaN x ... NaN NaN NaN \n", - "\n", - " SDG 14 SDG 15 SDG 16 SDG 17 summary status \\\n", - "slug \n", - "aaltofablab NaN NaN NaN x SDG-04-08-09-17 orange \n", - "artilectfablab NaN NaN NaN NaN SDG-04-07-10-12 orange \n", - "fablabcuenca NaN NaN NaN NaN SDG-01-04-05-07 orange \n", - "fablabspinderihallerne NaN NaN NaN NaN SDG-04-05-10-12 orange \n", - "fablabsuriname NaN NaN NaN x SDG-04-08-09-17 orange \n", - "\n", - " check \n", - "slug \n", - "aaltofablab OK \n", - "artilectfablab OK \n", - "fablabcuenca OK \n", - "fablabspinderihallerne OK \n", - "fablabsuriname OK \n", - "\n", - "[5 rows x 26 columns]" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "profiles = profiles.loc[profiles['Tijdstempel'].notna()]\n", - "profiles.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Filter 01 in SDG Profile Summary" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "ename": "KeyError", - "evalue": "False", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3079\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3080\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3081\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine._get_loc_duplicates\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine._maybe_get_bool_indexer\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine._unpack_bool_indexer\u001b[0;34m()\u001b[0m\n", - "\u001b[0;31mKeyError\u001b[0m: False", - "\nThe above exception was the direct cause of the following exception:\n", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m<ipython-input-42-dce8bbd606bb>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Filter x in SDG Profile Summary\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprofiles\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'SDG-03'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mprofiles\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'summary'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 893\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 894\u001b[0m \u001b[0mmaybe_callable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcom\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_if_callable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 895\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmaybe_callable\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 896\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 897\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_is_scalar_access\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mTuple\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_getitem_axis\u001b[0;34m(self, key, axis)\u001b[0m\n\u001b[1;32m 1122\u001b[0m \u001b[0;31m# fall thru to straight lookup\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1123\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_key\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1124\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1125\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1126\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_get_slice_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mslice_obj\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mslice\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_get_label\u001b[0;34m(self, label, axis)\u001b[0m\n\u001b[1;32m 1071\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_get_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1072\u001b[0m \u001b[0;31m# GH#5667 this will fail if the label is not present in the axis.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1073\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1074\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1075\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_handle_lowerdim_multi_index_axis0\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtup\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mTuple\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36mxs\u001b[0;34m(self, key, axis, level, drop_level)\u001b[0m\n\u001b[1;32m 3737\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Expected label or tuple of labels, got {key}\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3738\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3739\u001b[0;31m \u001b[0mloc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3740\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3741\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndarray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3080\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3081\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3082\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3083\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3084\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtolerance\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mKeyError\u001b[0m: False" - ] - } - ], - "source": [ - "# Filter x in SDG Profile Summary\n", - "x = profiles.loc['SDG-03' in profiles['summary']]\n", - "x\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Read fablabs.io records from online JSON-file" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "<class 'pandas.core.frame.DataFrame'>\n", - "RangeIndex: 2001 entries, 0 to 2000\n", - "Data columns (total 23 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 id 2001 non-null int64 \n", - " 1 name 2001 non-null object \n", - " 2 kind_name 2001 non-null object \n", - " 3 parent_id 681 non-null float64\n", - " 4 blurb 1954 non-null object \n", - " 5 description 1972 non-null object \n", - " 6 slug 2001 non-null object \n", - " 7 avatar_url 1639 non-null object \n", - " 8 header_url 1310 non-null object \n", - " 9 address_1 1973 non-null object \n", - " 10 address_2 1971 non-null object \n", - " 11 city 2001 non-null object \n", - " 12 county 2001 non-null object \n", - " 13 postal_code 1999 non-null object \n", - " 14 country_code 2001 non-null object \n", - " 15 latitude 1834 non-null float64\n", - " 16 longitude 1834 non-null float64\n", - " 17 address_notes 1972 non-null object \n", - " 18 phone 1972 non-null object \n", - " 19 email 1972 non-null object \n", - " 20 capabilities 2001 non-null object \n", - " 21 activity_status 1409 non-null object \n", - " 22 links 2001 non-null object \n", - "dtypes: float64(3), int64(1), object(19)\n", - "memory usage: 211.1+ KB\n" - ] - }, - { - "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>id</th>\n", - " <th>name</th>\n", - " <th>kind_name</th>\n", - " <th>parent_id</th>\n", - " <th>blurb</th>\n", - " <th>description</th>\n", - " <th>slug</th>\n", - " <th>avatar_url</th>\n", - " <th>header_url</th>\n", - " <th>address_1</th>\n", - " <th>...</th>\n", - " <th>postal_code</th>\n", - " <th>country_code</th>\n", - " <th>latitude</th>\n", - " <th>longitude</th>\n", - " <th>address_notes</th>\n", - " <th>phone</th>\n", - " <th>email</th>\n", - " <th>capabilities</th>\n", - " <th>activity_status</th>\n", - " <th>links</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>17</td>\n", - " <td>PiNG</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>ping</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>...</td>\n", - " <td>44000</td>\n", - " <td>FR</td>\n", - " <td>47.218371</td>\n", - " <td>-1.553621</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>[]</td>\n", - " <td>None</td>\n", - " <td>[{'id': 52, 'url': 'http://fablab.pingbase.net'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>20</td>\n", - " <td>FabLab INSA Strasbourg</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>fablabinsastrasbourg</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>...</td>\n", - " <td>67000</td>\n", - " <td>FR</td>\n", - " <td>48.583148</td>\n", - " <td>7.747882</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>[]</td>\n", - " <td>None</td>\n", - " <td>[{'id': 55, 'url': 'http://www.ideaslab.fr'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>793</td>\n", - " <td>FabLab Zagreb</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>First FabLab in Zagreb and Croatia, with visio...</td>\n", - " <td>FabLab in Zagreb is first in Croatia founded t...</td>\n", - " <td>fablabhr</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/05/25/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/21/...</td>\n", - " <td>Ilica 69</td>\n", - " <td>...</td>\n", - " <td>10000</td>\n", - " <td>HR</td>\n", - " <td>45.812096</td>\n", - " <td>15.965438</td>\n", - " <td></td>\n", - " <td>+38513755436</td>\n", - " <td>info@fablab.hr</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 1323, 'url': 'http://www.fablab.hr'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>1206</td>\n", - " <td>Fab Lab Irbid</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>Fablab Irbid is Jordan's first and largest dig...</td>\n", - " <td>FabLab Irbid is the first Fab Lab in Jordan in...</td>\n", - " <td>fablabirbid</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2019/02/06/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2017/05/14/...</td>\n", - " <td>Irbid Development Zone</td>\n", - " <td>...</td>\n", - " <td></td>\n", - " <td>JO</td>\n", - " <td>32.488820</td>\n", - " <td>35.976346</td>\n", - " <td>Link to google maps: https://goo.gl/maps/Bq7y6...</td>\n", - " <td>+96207 9920 7198</td>\n", - " <td>nadine@shamalstart.com</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 2130, 'url': 'https://www.shamalstart....</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>892</td>\n", - " <td>FABLAB KERALA - Trivandrum</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>With the support of Government of Kerala, KSUM...</td>\n", - " <td>With the support of Government of Kerala, KSUM...</td>\n", - " <td>fablabtrivandrum</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2018/08/01/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/11/05/...</td>\n", - " <td>Kerala Startup Mission (KSUM)</td>\n", - " <td>...</td>\n", - " <td>699581</td>\n", - " <td>IN</td>\n", - " <td>8.557167</td>\n", - " <td>76.880297</td>\n", - " <td></td>\n", - " <td>+91 9809494669</td>\n", - " <td>fablab@startupmission.in</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 1563, 'url': 'http://www.startupmissio...</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>1996</th>\n", - " <td>1587</td>\n", - " <td>TechWorks Amman</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>TechWorks is CPF’s flagship innovation platfor...</td>\n", - " <td>TechWorks is CPF’s flagship innovation platfor...</td>\n", - " <td>fablabjordan</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/20/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/20/...</td>\n", - " <td>King Hussein Business Park</td>\n", - " <td>...</td>\n", - " <td></td>\n", - " <td>JO</td>\n", - " <td>31.971502</td>\n", - " <td>35.832792</td>\n", - " <td>Next to GROW Building side door entrance</td>\n", - " <td>00962791000110</td>\n", - " <td>info@techworks.jo</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 29176, 'url': 'https://youtu.be/zLt3aO...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1997</th>\n", - " <td>1730</td>\n", - " <td>BISCAST ManFabLab</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>Naga's leading center of idea generation and s...</td>\n", - " <td>Formed between the partnership of Bicol State ...</td>\n", - " <td>biscastmanfablab</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2018/06/01/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2018/10/08/...</td>\n", - " <td>98 Penafrancia Ave.</td>\n", - " <td>...</td>\n", - " <td>4400</td>\n", - " <td>PH</td>\n", - " <td>13.636209</td>\n", - " <td>123.199228</td>\n", - " <td></td>\n", - " <td></td>\n", - " <td>biscast.manfablab@gmail.com</td>\n", - " <td>[three_d_printing, cnc_milling, laser, precisi...</td>\n", - " <td>active</td>\n", - " <td>[]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1998</th>\n", - " <td>1538</td>\n", - " <td>MakersLab</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>MakersLab is a learning and prototyping space ...</td>\n", - " <td>MakersLab (Ede, the Netherlands) is open to an...</td>\n", - " <td>makerslab</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/06/16/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2017/09/25/...</td>\n", - " <td>Bovenbuurtweg 7</td>\n", - " <td>...</td>\n", - " <td>6717XA</td>\n", - " <td>NL</td>\n", - " <td>52.022091</td>\n", - " <td>5.661235</td>\n", - " <td>Our bright yellow colors should give away our ...</td>\n", - " <td>+31 318 455180</td>\n", - " <td>info@makerslab.nl</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 4968, 'url': 'http://www.makerslab.nl/'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1999</th>\n", - " <td>2210</td>\n", - " <td>FabLab L'Aquila</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>FabLabAQ is a group of people hold together by...</td>\n", - " <td>FabLab L’Aquila Association\\r\\n\\r\\nL'Aquila's ...</td>\n", - " <td>fablabaq</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/02/07/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/02/07/...</td>\n", - " <td>Via Giuseppe Mezzanotte</td>\n", - " <td>...</td>\n", - " <td>67100</td>\n", - " <td>IT</td>\n", - " <td>42.354660</td>\n", - " <td>13.413750</td>\n", - " <td></td>\n", - " <td>+393927629526</td>\n", - " <td>info@fablaquila.org</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 30617, 'url': 'https://www.instagram.c...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2000</th>\n", - " <td>2230</td>\n", - " <td>ZapLab</td>\n", - " <td>fab_lab</td>\n", - " <td>133.0</td>\n", - " <td>ZapLab @ Villa Zapakara in Paramaribo, Surinam...</td>\n", - " <td>ZapLab will operate according to sustainable d...</td>\n", - " <td>ZapLab</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/06/19/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/05/...</td>\n", - " <td>Prins Hendrikstraat 17B</td>\n", - " <td>...</td>\n", - " <td></td>\n", - " <td>SR</td>\n", - " <td>5.833524</td>\n", - " <td>-55.151134</td>\n", - " <td>ZapLab @ Villa Zapakara</td>\n", - " <td>+597 422212</td>\n", - " <td>zaplab@villazapakara.com</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 30791, 'url': 'https://www.youtube.com...</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>2001 rows × 23 columns</p>\n", - "</div>" - ], - "text/plain": [ - " id name kind_name parent_id \\\n", - "0 17 PiNG fab_lab NaN \n", - "1 20 FabLab INSA Strasbourg fab_lab NaN \n", - "2 793 FabLab Zagreb fab_lab NaN \n", - "3 1206 Fab Lab Irbid fab_lab NaN \n", - "4 892 FABLAB KERALA - Trivandrum fab_lab NaN \n", - "... ... ... ... ... \n", - "1996 1587 TechWorks Amman fab_lab NaN \n", - "1997 1730 BISCAST ManFabLab fab_lab NaN \n", - "1998 1538 MakersLab fab_lab NaN \n", - "1999 2210 FabLab L'Aquila fab_lab NaN \n", - "2000 2230 ZapLab fab_lab 133.0 \n", - "\n", - " blurb \\\n", - "0 None \n", - "1 None \n", - "2 First FabLab in Zagreb and Croatia, with visio... \n", - "3 Fablab Irbid is Jordan's first and largest dig... \n", - "4 With the support of Government of Kerala, KSUM... \n", - "... ... \n", - "1996 TechWorks is CPF’s flagship innovation platfor... \n", - "1997 Naga's leading center of idea generation and s... \n", - "1998 MakersLab is a learning and prototyping space ... \n", - "1999 FabLabAQ is a group of people hold together by... \n", - "2000 ZapLab @ Villa Zapakara in Paramaribo, Surinam... \n", - "\n", - " description slug \\\n", - "0 None ping \n", - "1 None fablabinsastrasbourg \n", - "2 FabLab in Zagreb is first in Croatia founded t... fablabhr \n", - "3 FabLab Irbid is the first Fab Lab in Jordan in... fablabirbid \n", - "4 With the support of Government of Kerala, KSUM... fablabtrivandrum \n", - "... ... ... \n", - "1996 TechWorks is CPF’s flagship innovation platfor... fablabjordan \n", - "1997 Formed between the partnership of Bicol State ... biscastmanfablab \n", - "1998 MakersLab (Ede, the Netherlands) is open to an... makerslab \n", - "1999 FabLab L’Aquila Association\\r\\n\\r\\nL'Aquila's ... fablabaq \n", - "2000 ZapLab will operate according to sustainable d... ZapLab \n", - "\n", - " avatar_url \\\n", - "0 None \n", - "1 None \n", - "2 http://fablabs.io.s3.amazonaws.com/2020/05/25/... \n", - "3 http://fablabs.io.s3.amazonaws.com/2019/02/06/... \n", - "4 http://fablabs.io.s3.amazonaws.com/2018/08/01/... \n", - "... ... \n", - "1996 http://fablabs.io.s3.amazonaws.com/2021/01/20/... \n", - "1997 http://fablabs.io.s3.amazonaws.com/2018/06/01/... \n", - "1998 http://fablabs.io.s3.amazonaws.com/2020/06/16/... \n", - "1999 http://fablabs.io.s3.amazonaws.com/2020/02/07/... \n", - "2000 http://fablabs.io.s3.amazonaws.com/2020/06/19/... \n", - "\n", - " header_url \\\n", - "0 None \n", - "1 None \n", - "2 http://fablabs.io.s3.amazonaws.com/2021/01/21/... \n", - "3 http://fablabs.io.s3.amazonaws.com/2017/05/14/... \n", - "4 http://fablabs.io.s3.amazonaws.com/2020/11/05/... \n", - "... ... \n", - "1996 http://fablabs.io.s3.amazonaws.com/2021/01/20/... \n", - "1997 http://fablabs.io.s3.amazonaws.com/2018/10/08/... \n", - "1998 http://fablabs.io.s3.amazonaws.com/2017/09/25/... \n", - "1999 http://fablabs.io.s3.amazonaws.com/2020/02/07/... \n", - "2000 http://fablabs.io.s3.amazonaws.com/2021/01/05/... \n", - "\n", - " address_1 ... postal_code country_code latitude \\\n", - "0 None ... 44000 FR 47.218371 \n", - "1 None ... 67000 FR 48.583148 \n", - "2 Ilica 69 ... 10000 HR 45.812096 \n", - "3 Irbid Development Zone ... JO 32.488820 \n", - "4 Kerala Startup Mission (KSUM) ... 699581 IN 8.557167 \n", - "... ... ... ... ... ... \n", - "1996 King Hussein Business Park ... JO 31.971502 \n", - "1997 98 Penafrancia Ave. ... 4400 PH 13.636209 \n", - "1998 Bovenbuurtweg 7 ... 6717XA NL 52.022091 \n", - "1999 Via Giuseppe Mezzanotte ... 67100 IT 42.354660 \n", - "2000 Prins Hendrikstraat 17B ... SR 5.833524 \n", - "\n", - " longitude address_notes \\\n", - "0 -1.553621 None \n", - "1 7.747882 None \n", - "2 15.965438 \n", - "3 35.976346 Link to google maps: https://goo.gl/maps/Bq7y6... \n", - "4 76.880297 \n", - "... ... ... \n", - "1996 35.832792 Next to GROW Building side door entrance \n", - "1997 123.199228 \n", - "1998 5.661235 Our bright yellow colors should give away our ... \n", - "1999 13.413750 \n", - "2000 -55.151134 ZapLab @ Villa Zapakara \n", - "\n", - " phone email \\\n", - "0 None None \n", - "1 None None \n", - "2 +38513755436 info@fablab.hr \n", - "3 +96207 9920 7198 nadine@shamalstart.com \n", - "4 +91 9809494669 fablab@startupmission.in \n", - "... ... ... \n", - "1996 00962791000110 info@techworks.jo \n", - "1997 biscast.manfablab@gmail.com \n", - "1998 +31 318 455180 info@makerslab.nl \n", - "1999 +393927629526 info@fablaquila.org \n", - "2000 +597 422212 zaplab@villazapakara.com \n", - "\n", - " capabilities activity_status \\\n", - "0 [] None \n", - "1 [] None \n", - "2 [three_d_printing, cnc_milling, circuit_produc... active \n", - "3 [three_d_printing, cnc_milling, circuit_produc... active \n", - "4 [three_d_printing, cnc_milling, circuit_produc... active \n", - "... ... ... \n", - "1996 [three_d_printing, cnc_milling, circuit_produc... active \n", - "1997 [three_d_printing, cnc_milling, laser, precisi... active \n", - "1998 [three_d_printing, cnc_milling, circuit_produc... active \n", - "1999 [three_d_printing, cnc_milling, circuit_produc... active \n", - "2000 [three_d_printing, cnc_milling, circuit_produc... active \n", - "\n", - " links \n", - "0 [{'id': 52, 'url': 'http://fablab.pingbase.net'}] \n", - "1 [{'id': 55, 'url': 'http://www.ideaslab.fr'}] \n", - "2 [{'id': 1323, 'url': 'http://www.fablab.hr'}] \n", - "3 [{'id': 2130, 'url': 'https://www.shamalstart.... \n", - "4 [{'id': 1563, 'url': 'http://www.startupmissio... \n", - "... ... \n", - "1996 [{'id': 29176, 'url': 'https://youtu.be/zLt3aO... \n", - "1997 [] \n", - "1998 [{'id': 4968, 'url': 'http://www.makerslab.nl/'}] \n", - "1999 [{'id': 30617, 'url': 'https://www.instagram.c... \n", - "2000 [{'id': 30791, 'url': 'https://www.youtube.com... \n", - "\n", - "[2001 rows x 23 columns]" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Read JSON-file with fablabs.io records\n", - "fablabs=pd.read_json('https://fablabs.io/labs.json?class=btn+btn-primary')\n", - "fablabs.info()\n", - "fablabs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## List fab labs with activity_status == \"closed\"" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "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>activity_status</th>\n", - " <th>country_code</th>\n", - " <th>city</th>\n", - " <th>name</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>20</th>\n", - " <td>closed</td>\n", - " <td>IT</td>\n", - " <td>Cascina</td>\n", - " <td>Fab Lab Toscana Cascina</td>\n", - " </tr>\n", - " <tr>\n", - " <th>26</th>\n", - " <td>closed</td>\n", - " <td>FR</td>\n", - " <td>La Rochelle</td>\n", - " <td>Les établis&co</td>\n", - " </tr>\n", - " <tr>\n", - " <th>51</th>\n", - " <td>closed</td>\n", - " <td>FR</td>\n", - " <td>Havre (Le)</td>\n", - " <td>fermé</td>\n", - " </tr>\n", - " <tr>\n", - " <th>85</th>\n", - " <td>closed</td>\n", - " <td>NL</td>\n", - " <td>Breda</td>\n", - " <td>FabLab Breda / moved to library</td>\n", - " </tr>\n", - " <tr>\n", - " <th>101</th>\n", - " <td>closed</td>\n", - " <td>IT</td>\n", - " <td>Mercato San Severino</td>\n", - " <td>3DBell FabLab</td>\n", - " </tr>\n", - " <tr>\n", - " <th>105</th>\n", - " <td>closed</td>\n", - " <td>NZ</td>\n", - " <td>Wellington</td>\n", - " <td>Fab Lab Wgtn, New Zealand</td>\n", - " </tr>\n", - " <tr>\n", - " <th>195</th>\n", - " <td>closed</td>\n", - " <td>GB</td>\n", - " <td>Ellesmere Port</td>\n", - " <td>Fab Lab Ellesmere Port</td>\n", - " </tr>\n", - " <tr>\n", - " <th>289</th>\n", - " <td>closed</td>\n", - " <td>FR</td>\n", - " <td>Val-de-Reuil</td>\n", - " <td>FabLab 276 Val-de-Reuil</td>\n", - " </tr>\n", - " <tr>\n", - " <th>331</th>\n", - " <td>closed</td>\n", - " <td>AR</td>\n", - " <td></td>\n", - " <td>Tacuru // DELETED// CLOSE</td>\n", - " </tr>\n", - " <tr>\n", - " <th>437</th>\n", - " <td>closed</td>\n", - " <td>US</td>\n", - " <td></td>\n", - " <td>Omaha Nebraska, United States</td>\n", - " </tr>\n", - " <tr>\n", - " <th>457</th>\n", - " <td>closed</td>\n", - " <td>IN</td>\n", - " <td>Dantewada</td>\n", - " <td>Innovation Lab, Palnar</td>\n", - " </tr>\n", - " <tr>\n", - " <th>458</th>\n", - " <td>closed</td>\n", - " <td>EC</td>\n", - " <td>Urcuqui</td>\n", - " <td>FabLab YACHAY</td>\n", - " </tr>\n", - " <tr>\n", - " <th>477</th>\n", - " <td>closed</td>\n", - " <td>DK</td>\n", - " <td>København</td>\n", - " <td>Fablab TI</td>\n", - " </tr>\n", - " <tr>\n", - " <th>500</th>\n", - " <td>closed</td>\n", - " <td>FR</td>\n", - " <td></td>\n", - " <td>Rupellab - fablab La Rochelle</td>\n", - " </tr>\n", - " <tr>\n", - " <th>655</th>\n", - " <td>closed</td>\n", - " <td>PL</td>\n", - " <td>Zielona Góra</td>\n", - " <td>Fabryka Pasji</td>\n", - " </tr>\n", - " <tr>\n", - " <th>693</th>\n", - " <td>closed</td>\n", - " <td>CR</td>\n", - " <td></td>\n", - " <td>Instituto Tecnologico de Costa Rica</td>\n", - " </tr>\n", - " <tr>\n", - " <th>698</th>\n", - " <td>closed</td>\n", - " <td>GB</td>\n", - " <td>Manchester</td>\n", - " <td>Fab Lab Manchester</td>\n", - " </tr>\n", - " <tr>\n", - " <th>766</th>\n", - " <td>closed</td>\n", - " <td>CH</td>\n", - " <td>Lausanne</td>\n", - " <td>Fablab HEP Vaud</td>\n", - " </tr>\n", - " <tr>\n", - " <th>789</th>\n", - " <td>closed</td>\n", - " <td>BR</td>\n", - " <td>Porto Alegre</td>\n", - " <td>Fabrique Lab</td>\n", - " </tr>\n", - " <tr>\n", - " <th>793</th>\n", - " <td>closed</td>\n", - " <td>BR</td>\n", - " <td>Florianópolis</td>\n", - " <td>Fab Lab Floripa</td>\n", - " </tr>\n", - " <tr>\n", - " <th>812</th>\n", - " <td>closed</td>\n", - " <td>KR</td>\n", - " <td>Gwacheon-si</td>\n", - " <td>Idea Factory in Gwacheon National Science Museum</td>\n", - " </tr>\n", - " <tr>\n", - " <th>873</th>\n", - " <td>closed</td>\n", - " <td>BR</td>\n", - " <td>brasil</td>\n", - " <td>Laboratório</td>\n", - " </tr>\n", - " <tr>\n", - " <th>881</th>\n", - " <td>closed</td>\n", - " <td>GB</td>\n", - " <td>Glasgow</td>\n", - " <td>MAKLAB</td>\n", - " </tr>\n", - " <tr>\n", - " <th>883</th>\n", - " <td>closed</td>\n", - " <td>CH</td>\n", - " <td>Genève</td>\n", - " <td>Onl'Fait</td>\n", - " </tr>\n", - " <tr>\n", - " <th>919</th>\n", - " <td>closed</td>\n", - " <td>FR</td>\n", - " <td>Cannes</td>\n", - " <td>la refabrique</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1054</th>\n", - " <td>closed</td>\n", - " <td>BE</td>\n", - " <td>Brugge</td>\n", - " <td>eco-fab-lab</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1067</th>\n", - " <td>closed</td>\n", - " <td>FR</td>\n", - " <td>Les Ulis</td>\n", - " <td>Fab Lab Mobile</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1104</th>\n", - " <td>closed</td>\n", - " <td>GB</td>\n", - " <td>London</td>\n", - " <td>Fab Lab London</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1116</th>\n", - " <td>closed</td>\n", - " <td>LU</td>\n", - " <td>Belval</td>\n", - " <td>Technoport FabLabs (Belval & Differdange)</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1126</th>\n", - " <td>closed</td>\n", - " <td>RW</td>\n", - " <td></td>\n", - " <td>DUPLICATE</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1224</th>\n", - " <td>closed</td>\n", - " <td>FR</td>\n", - " <td></td>\n", - " <td>ZZZ_OLD___Info @ Leze</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1327</th>\n", - " <td>closed</td>\n", - " <td>SI</td>\n", - " <td>Ljubljana</td>\n", - " <td>fablabljubljana</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1353</th>\n", - " <td>closed</td>\n", - " <td>IT</td>\n", - " <td>Padova</td>\n", - " <td>FabLab Padova</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1369</th>\n", - " <td>closed</td>\n", - " <td>BR</td>\n", - " <td>Jaguariúna</td>\n", - " <td>FabLab FAJ</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1396</th>\n", - " <td>closed</td>\n", - " <td>IT</td>\n", - " <td>Faenza</td>\n", - " <td>FabLab Faenza</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1417</th>\n", - " <td>closed</td>\n", - " <td>GB</td>\n", - " <td>Dumfries</td>\n", - " <td>MAKLAB - Dumfries</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1610</th>\n", - " <td>closed</td>\n", - " <td>US</td>\n", - " <td>Bellingham</td>\n", - " <td>The Foundry; Bellingham</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1693</th>\n", - " <td>closed</td>\n", - " <td>AR</td>\n", - " <td>La Plata</td>\n", - " <td>DELETED</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1709</th>\n", - " <td>closed</td>\n", - " <td>JO</td>\n", - " <td>Amman</td>\n", - " <td>Fab Lab Amman</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1714</th>\n", - " <td>closed</td>\n", - " <td>PT</td>\n", - " <td>Caldas da Rainha</td>\n", - " <td>Fablab Caldas da Rainha</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1744</th>\n", - " <td>closed</td>\n", - " <td>IT</td>\n", - " <td></td>\n", - " <td>FabCube</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1783</th>\n", - " <td>closed</td>\n", - " <td>AU</td>\n", - " <td>Munster</td>\n", - " <td>FabLab WA</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1808</th>\n", - " <td>closed</td>\n", - " <td>EG</td>\n", - " <td>6th of October City</td>\n", - " <td>Fab Lab 6 October</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1913</th>\n", - " <td>closed</td>\n", - " <td>IL</td>\n", - " <td>Jerusalem</td>\n", - " <td>NBEL Innovation Workshops</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1919</th>\n", - " <td>closed</td>\n", - " <td>BR</td>\n", - " <td>São Paulo</td>\n", - " <td>PortoFabLab</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1959</th>\n", - " <td>closed</td>\n", - " <td>DE</td>\n", - " <td>Detmold</td>\n", - " <td>FabLab OWL</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "</div>" - ], - "text/plain": [ - " activity_status country_code city \\\n", - "20 closed IT Cascina \n", - "26 closed FR La Rochelle \n", - "51 closed FR Havre (Le) \n", - "85 closed NL Breda \n", - "101 closed IT Mercato San Severino \n", - "105 closed NZ Wellington \n", - "195 closed GB Ellesmere Port \n", - "289 closed FR Val-de-Reuil \n", - "331 closed AR \n", - "437 closed US \n", - "457 closed IN Dantewada \n", - "458 closed EC Urcuqui \n", - "477 closed DK København \n", - "500 closed FR \n", - "655 closed PL Zielona Góra \n", - "693 closed CR \n", - "698 closed GB Manchester \n", - "766 closed CH Lausanne \n", - "789 closed BR Porto Alegre \n", - "793 closed BR Florianópolis \n", - "812 closed KR Gwacheon-si \n", - "873 closed BR brasil \n", - "881 closed GB Glasgow \n", - "883 closed CH Genève \n", - "919 closed FR Cannes \n", - "1054 closed BE Brugge \n", - "1067 closed FR Les Ulis \n", - "1104 closed GB London \n", - "1116 closed LU Belval \n", - "1126 closed RW \n", - "1224 closed FR \n", - "1327 closed SI Ljubljana \n", - "1353 closed IT Padova \n", - "1369 closed BR Jaguariúna \n", - "1396 closed IT Faenza \n", - "1417 closed GB Dumfries \n", - "1610 closed US Bellingham \n", - "1693 closed AR La Plata \n", - "1709 closed JO Amman \n", - "1714 closed PT Caldas da Rainha \n", - "1744 closed IT \n", - "1783 closed AU Munster \n", - "1808 closed EG 6th of October City \n", - "1913 closed IL Jerusalem \n", - "1919 closed BR São Paulo \n", - "1959 closed DE Detmold \n", - "\n", - " name \n", - "20 Fab Lab Toscana Cascina \n", - "26 Les établis&co \n", - "51 fermé \n", - "85 FabLab Breda / moved to library \n", - "101 3DBell FabLab \n", - "105 Fab Lab Wgtn, New Zealand \n", - "195 Fab Lab Ellesmere Port \n", - "289 FabLab 276 Val-de-Reuil \n", - "331 Tacuru // DELETED// CLOSE \n", - "437 Omaha Nebraska, United States \n", - "457 Innovation Lab, Palnar \n", - "458 FabLab YACHAY \n", - "477 Fablab TI \n", - "500 Rupellab - fablab La Rochelle \n", - "655 Fabryka Pasji \n", - "693 Instituto Tecnologico de Costa Rica \n", - "698 Fab Lab Manchester \n", - "766 Fablab HEP Vaud \n", - "789 Fabrique Lab \n", - "793 Fab Lab Floripa \n", - "812 Idea Factory in Gwacheon National Science Museum \n", - "873 Laboratório \n", - "881 MAKLAB \n", - "883 Onl'Fait \n", - "919 la refabrique \n", - "1054 eco-fab-lab \n", - "1067 Fab Lab Mobile \n", - "1104 Fab Lab London \n", - "1116 Technoport FabLabs (Belval & Differdange) \n", - "1126 DUPLICATE \n", - "1224 ZZZ_OLD___Info @ Leze \n", - "1327 fablabljubljana \n", - "1353 FabLab Padova \n", - "1369 FabLab FAJ \n", - "1396 FabLab Faenza \n", - "1417 MAKLAB - Dumfries \n", - "1610 The Foundry; Bellingham \n", - "1693 DELETED \n", - "1709 Fab Lab Amman \n", - "1714 Fablab Caldas da Rainha \n", - "1744 FabCube \n", - "1783 FabLab WA \n", - "1808 Fab Lab 6 October \n", - "1913 NBEL Innovation Workshops \n", - "1919 PortoFabLab \n", - "1959 FabLab OWL " - ] - }, - "execution_count": 88, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# List fab labs with activity_status == \"closed\"\n", - "closed = fablabs.loc[fablabs['activity_status'] == 'closed', ['activity_status', 'country_code', 'city', 'name']]\n", - "closed" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Skip fablabs with activity_status == \"closed\"" - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "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>id</th>\n", - " <th>name</th>\n", - " <th>kind_name</th>\n", - " <th>parent_id</th>\n", - " <th>blurb</th>\n", - " <th>description</th>\n", - " <th>slug</th>\n", - " <th>avatar_url</th>\n", - " <th>header_url</th>\n", - " <th>address_1</th>\n", - " <th>...</th>\n", - " <th>postal_code</th>\n", - " <th>country_code</th>\n", - " <th>latitude</th>\n", - " <th>longitude</th>\n", - " <th>address_notes</th>\n", - " <th>phone</th>\n", - " <th>email</th>\n", - " <th>capabilities</th>\n", - " <th>activity_status</th>\n", - " <th>links</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>17</td>\n", - " <td>PiNG</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>ping</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>...</td>\n", - " <td>44000</td>\n", - " <td>FR</td>\n", - " <td>47.218371</td>\n", - " <td>-1.553621</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>[]</td>\n", - " <td>None</td>\n", - " <td>[{'id': 52, 'url': 'http://fablab.pingbase.net'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>20</td>\n", - " <td>FabLab INSA Strasbourg</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>fablabinsastrasbourg</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>...</td>\n", - " <td>67000</td>\n", - " <td>FR</td>\n", - " <td>48.583148</td>\n", - " <td>7.747882</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>None</td>\n", - " <td>[]</td>\n", - " <td>None</td>\n", - " <td>[{'id': 55, 'url': 'http://www.ideaslab.fr'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>793</td>\n", - " <td>FabLab Zagreb</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>First FabLab in Zagreb and Croatia, with visio...</td>\n", - " <td>FabLab in Zagreb is first in Croatia founded t...</td>\n", - " <td>fablabhr</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/05/25/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/21/...</td>\n", - " <td>Ilica 69</td>\n", - " <td>...</td>\n", - " <td>10000</td>\n", - " <td>HR</td>\n", - " <td>45.812096</td>\n", - " <td>15.965438</td>\n", - " <td></td>\n", - " <td>+38513755436</td>\n", - " <td>info@fablab.hr</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 1323, 'url': 'http://www.fablab.hr'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>1206</td>\n", - " <td>Fab Lab Irbid</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>Fablab Irbid is Jordan's first and largest dig...</td>\n", - " <td>FabLab Irbid is the first Fab Lab in Jordan in...</td>\n", - " <td>fablabirbid</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2019/02/06/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2017/05/14/...</td>\n", - " <td>Irbid Development Zone</td>\n", - " <td>...</td>\n", - " <td></td>\n", - " <td>JO</td>\n", - " <td>32.488820</td>\n", - " <td>35.976346</td>\n", - " <td>Link to google maps: https://goo.gl/maps/Bq7y6...</td>\n", - " <td>+96207 9920 7198</td>\n", - " <td>nadine@shamalstart.com</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 2130, 'url': 'https://www.shamalstart....</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>892</td>\n", - " <td>FABLAB KERALA - Trivandrum</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>With the support of Government of Kerala, KSUM...</td>\n", - " <td>With the support of Government of Kerala, KSUM...</td>\n", - " <td>fablabtrivandrum</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2018/08/01/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/11/05/...</td>\n", - " <td>Kerala Startup Mission (KSUM)</td>\n", - " <td>...</td>\n", - " <td>699581</td>\n", - " <td>IN</td>\n", - " <td>8.557167</td>\n", - " <td>76.880297</td>\n", - " <td></td>\n", - " <td>+91 9809494669</td>\n", - " <td>fablab@startupmission.in</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 1563, 'url': 'http://www.startupmissio...</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>1996</th>\n", - " <td>1587</td>\n", - " <td>TechWorks Amman</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>TechWorks is CPF’s flagship innovation platfor...</td>\n", - " <td>TechWorks is CPF’s flagship innovation platfor...</td>\n", - " <td>fablabjordan</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/20/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/20/...</td>\n", - " <td>King Hussein Business Park</td>\n", - " <td>...</td>\n", - " <td></td>\n", - " <td>JO</td>\n", - " <td>31.971502</td>\n", - " <td>35.832792</td>\n", - " <td>Next to GROW Building side door entrance</td>\n", - " <td>00962791000110</td>\n", - " <td>info@techworks.jo</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 29176, 'url': 'https://youtu.be/zLt3aO...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1997</th>\n", - " <td>1730</td>\n", - " <td>BISCAST ManFabLab</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>Naga's leading center of idea generation and s...</td>\n", - " <td>Formed between the partnership of Bicol State ...</td>\n", - " <td>biscastmanfablab</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2018/06/01/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2018/10/08/...</td>\n", - " <td>98 Penafrancia Ave.</td>\n", - " <td>...</td>\n", - " <td>4400</td>\n", - " <td>PH</td>\n", - " <td>13.636209</td>\n", - " <td>123.199228</td>\n", - " <td></td>\n", - " <td></td>\n", - " <td>biscast.manfablab@gmail.com</td>\n", - " <td>[three_d_printing, cnc_milling, laser, precisi...</td>\n", - " <td>active</td>\n", - " <td>[]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1998</th>\n", - " <td>1538</td>\n", - " <td>MakersLab</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>MakersLab is a learning and prototyping space ...</td>\n", - " <td>MakersLab (Ede, the Netherlands) is open to an...</td>\n", - " <td>makerslab</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/06/16/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2017/09/25/...</td>\n", - " <td>Bovenbuurtweg 7</td>\n", - " <td>...</td>\n", - " <td>6717XA</td>\n", - " <td>NL</td>\n", - " <td>52.022091</td>\n", - " <td>5.661235</td>\n", - " <td>Our bright yellow colors should give away our ...</td>\n", - " <td>+31 318 455180</td>\n", - " <td>info@makerslab.nl</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 4968, 'url': 'http://www.makerslab.nl/'}]</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1999</th>\n", - " <td>2210</td>\n", - " <td>FabLab L'Aquila</td>\n", - " <td>fab_lab</td>\n", - " <td>NaN</td>\n", - " <td>FabLabAQ is a group of people hold together by...</td>\n", - " <td>FabLab L’Aquila Association\\r\\n\\r\\nL'Aquila's ...</td>\n", - " <td>fablabaq</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/02/07/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/02/07/...</td>\n", - " <td>Via Giuseppe Mezzanotte</td>\n", - " <td>...</td>\n", - " <td>67100</td>\n", - " <td>IT</td>\n", - " <td>42.354660</td>\n", - " <td>13.413750</td>\n", - " <td></td>\n", - " <td>+393927629526</td>\n", - " <td>info@fablaquila.org</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 30617, 'url': 'https://www.instagram.c...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2000</th>\n", - " <td>2230</td>\n", - " <td>ZapLab</td>\n", - " <td>fab_lab</td>\n", - " <td>133.0</td>\n", - " <td>ZapLab @ Villa Zapakara in Paramaribo, Surinam...</td>\n", - " <td>ZapLab will operate according to sustainable d...</td>\n", - " <td>ZapLab</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2020/06/19/...</td>\n", - " <td>http://fablabs.io.s3.amazonaws.com/2021/01/05/...</td>\n", - " <td>Prins Hendrikstraat 17B</td>\n", - " <td>...</td>\n", - " <td></td>\n", - " <td>SR</td>\n", - " <td>5.833524</td>\n", - " <td>-55.151134</td>\n", - " <td>ZapLab @ Villa Zapakara</td>\n", - " <td>+597 422212</td>\n", - " <td>zaplab@villazapakara.com</td>\n", - " <td>[three_d_printing, cnc_milling, circuit_produc...</td>\n", - " <td>active</td>\n", - " <td>[{'id': 30791, 'url': 'https://www.youtube.com...</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>1955 rows × 23 columns</p>\n", - "</div>" - ], - "text/plain": [ - " id name kind_name parent_id \\\n", - "0 17 PiNG fab_lab NaN \n", - "1 20 FabLab INSA Strasbourg fab_lab NaN \n", - "2 793 FabLab Zagreb fab_lab NaN \n", - "3 1206 Fab Lab Irbid fab_lab NaN \n", - "4 892 FABLAB KERALA - Trivandrum fab_lab NaN \n", - "... ... ... ... ... \n", - "1996 1587 TechWorks Amman fab_lab NaN \n", - "1997 1730 BISCAST ManFabLab fab_lab NaN \n", - "1998 1538 MakersLab fab_lab NaN \n", - "1999 2210 FabLab L'Aquila fab_lab NaN \n", - "2000 2230 ZapLab fab_lab 133.0 \n", - "\n", - " blurb \\\n", - "0 None \n", - "1 None \n", - "2 First FabLab in Zagreb and Croatia, with visio... \n", - "3 Fablab Irbid is Jordan's first and largest dig... \n", - "4 With the support of Government of Kerala, KSUM... \n", - "... ... \n", - "1996 TechWorks is CPF’s flagship innovation platfor... \n", - "1997 Naga's leading center of idea generation and s... \n", - "1998 MakersLab is a learning and prototyping space ... \n", - "1999 FabLabAQ is a group of people hold together by... \n", - "2000 ZapLab @ Villa Zapakara in Paramaribo, Surinam... \n", - "\n", - " description slug \\\n", - "0 None ping \n", - "1 None fablabinsastrasbourg \n", - "2 FabLab in Zagreb is first in Croatia founded t... fablabhr \n", - "3 FabLab Irbid is the first Fab Lab in Jordan in... fablabirbid \n", - "4 With the support of Government of Kerala, KSUM... fablabtrivandrum \n", - "... ... ... \n", - "1996 TechWorks is CPF’s flagship innovation platfor... fablabjordan \n", - "1997 Formed between the partnership of Bicol State ... biscastmanfablab \n", - "1998 MakersLab (Ede, the Netherlands) is open to an... makerslab \n", - "1999 FabLab L’Aquila Association\\r\\n\\r\\nL'Aquila's ... fablabaq \n", - "2000 ZapLab will operate according to sustainable d... ZapLab \n", - "\n", - " avatar_url \\\n", - "0 None \n", - "1 None \n", - "2 http://fablabs.io.s3.amazonaws.com/2020/05/25/... \n", - "3 http://fablabs.io.s3.amazonaws.com/2019/02/06/... \n", - "4 http://fablabs.io.s3.amazonaws.com/2018/08/01/... \n", - "... ... \n", - "1996 http://fablabs.io.s3.amazonaws.com/2021/01/20/... \n", - "1997 http://fablabs.io.s3.amazonaws.com/2018/06/01/... \n", - "1998 http://fablabs.io.s3.amazonaws.com/2020/06/16/... \n", - "1999 http://fablabs.io.s3.amazonaws.com/2020/02/07/... \n", - "2000 http://fablabs.io.s3.amazonaws.com/2020/06/19/... \n", - "\n", - " header_url \\\n", - "0 None \n", - "1 None \n", - "2 http://fablabs.io.s3.amazonaws.com/2021/01/21/... \n", - "3 http://fablabs.io.s3.amazonaws.com/2017/05/14/... \n", - "4 http://fablabs.io.s3.amazonaws.com/2020/11/05/... \n", - "... ... \n", - "1996 http://fablabs.io.s3.amazonaws.com/2021/01/20/... \n", - "1997 http://fablabs.io.s3.amazonaws.com/2018/10/08/... \n", - "1998 http://fablabs.io.s3.amazonaws.com/2017/09/25/... \n", - "1999 http://fablabs.io.s3.amazonaws.com/2020/02/07/... \n", - "2000 http://fablabs.io.s3.amazonaws.com/2021/01/05/... \n", - "\n", - " address_1 ... postal_code country_code latitude \\\n", - "0 None ... 44000 FR 47.218371 \n", - "1 None ... 67000 FR 48.583148 \n", - "2 Ilica 69 ... 10000 HR 45.812096 \n", - "3 Irbid Development Zone ... JO 32.488820 \n", - "4 Kerala Startup Mission (KSUM) ... 699581 IN 8.557167 \n", - "... ... ... ... ... ... \n", - "1996 King Hussein Business Park ... JO 31.971502 \n", - "1997 98 Penafrancia Ave. ... 4400 PH 13.636209 \n", - "1998 Bovenbuurtweg 7 ... 6717XA NL 52.022091 \n", - "1999 Via Giuseppe Mezzanotte ... 67100 IT 42.354660 \n", - "2000 Prins Hendrikstraat 17B ... SR 5.833524 \n", - "\n", - " longitude address_notes \\\n", - "0 -1.553621 None \n", - "1 7.747882 None \n", - "2 15.965438 \n", - "3 35.976346 Link to google maps: https://goo.gl/maps/Bq7y6... \n", - "4 76.880297 \n", - "... ... ... \n", - "1996 35.832792 Next to GROW Building side door entrance \n", - "1997 123.199228 \n", - "1998 5.661235 Our bright yellow colors should give away our ... \n", - "1999 13.413750 \n", - "2000 -55.151134 ZapLab @ Villa Zapakara \n", - "\n", - " phone email \\\n", - "0 None None \n", - "1 None None \n", - "2 +38513755436 info@fablab.hr \n", - "3 +96207 9920 7198 nadine@shamalstart.com \n", - "4 +91 9809494669 fablab@startupmission.in \n", - "... ... ... \n", - "1996 00962791000110 info@techworks.jo \n", - "1997 biscast.manfablab@gmail.com \n", - "1998 +31 318 455180 info@makerslab.nl \n", - "1999 +393927629526 info@fablaquila.org \n", - "2000 +597 422212 zaplab@villazapakara.com \n", - "\n", - " capabilities activity_status \\\n", - "0 [] None \n", - "1 [] None \n", - "2 [three_d_printing, cnc_milling, circuit_produc... active \n", - "3 [three_d_printing, cnc_milling, circuit_produc... active \n", - "4 [three_d_printing, cnc_milling, circuit_produc... active \n", - "... ... ... \n", - "1996 [three_d_printing, cnc_milling, circuit_produc... active \n", - "1997 [three_d_printing, cnc_milling, laser, precisi... active \n", - "1998 [three_d_printing, cnc_milling, circuit_produc... active \n", - "1999 [three_d_printing, cnc_milling, circuit_produc... active \n", - "2000 [three_d_printing, cnc_milling, circuit_produc... active \n", - "\n", - " links \n", - "0 [{'id': 52, 'url': 'http://fablab.pingbase.net'}] \n", - "1 [{'id': 55, 'url': 'http://www.ideaslab.fr'}] \n", - "2 [{'id': 1323, 'url': 'http://www.fablab.hr'}] \n", - "3 [{'id': 2130, 'url': 'https://www.shamalstart.... \n", - "4 [{'id': 1563, 'url': 'http://www.startupmissio... \n", - "... ... \n", - "1996 [{'id': 29176, 'url': 'https://youtu.be/zLt3aO... \n", - "1997 [] \n", - "1998 [{'id': 4968, 'url': 'http://www.makerslab.nl/'}] \n", - "1999 [{'id': 30617, 'url': 'https://www.instagram.c... \n", - "2000 [{'id': 30791, 'url': 'https://www.youtube.com... \n", - "\n", - "[1955 rows x 23 columns]" - ] - }, - "execution_count": 89, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Skip fablabs with activity_status == \"closed\"\n", - "fablabs = fablabs[fablabs['activity_status'] != 'closed']\n", - "fablabs" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "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.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/aggregated-results/sdg-profiles-statistics.ipynb b/aggregated-results/sdg-profiles-statistics.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..118bfe7dccaa80fe3c86898cce7dadd0fccd6170 --- /dev/null +++ b/aggregated-results/sdg-profiles-statistics.ipynb @@ -0,0 +1,425 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generating a report on Aligning a Fab Lab with the UN SDGs\n", + "#### Author: Pieter van der Hijden (pvdh@sofos.nl) - \"Fab Labs and SDGs\" Working Group; Pieter van der Hijden (The Netherlands & Suriname) plus global team: Enrico Bassi (Italy), Vaneza Caycho Ñuflo (Peru), Nagwa ElNwishy (Egypt), Neville Govender (South Africa), Ted Hung (Taiwan), Arundhati Jadhav (India), Beno Juarez (Peru), Yogesh Kulkarni (India), Noksy Letsoalo (South Africa), Jean-Baptiste Natali (New Zealand), Wendy Neale (New Zealand), Mess Wright (USA)\n", + "#### This work is licensed under a Creative Commons Attribution 4.0 International License; https://creativecommons.org/licenses/by/4.0/.\n", + "\n", + "### Purpose\n", + "As a service to the individual fablabs we want to generate a report on a specific fab lab and its alignment with the UN Sustrainable Development Goals (SDGs). The information included is either generic in nature, or derived from various databases (fablabs basic data from fablabs.io, fablabs sdg profiles from sdg profile registration spreadsheet). \n", + "\n", + "### Table of Contents\n", + "1. Install packages\n", + "1. Import libraries\n", + "1. Prepare dataframes\n", + " * Prepare dataframe profiles from gitlab.fabcloud.org\n", + " * Prepare dataframe fablabs from fablabs.io \n", + "1. Merge profiles with fablabs (left)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Install packages" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple\n", + "Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (1.2.3)\n", + "Requirement already satisfied: numpy>=1.16.5 in /usr/local/lib/python3.7/dist-packages (from pandas) (1.20.1)\n", + "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/lib/python3/dist-packages (from pandas) (2.7.3)\n", + "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.7/dist-packages (from pandas) (2021.1)\n", + "\u001b[33mWARNING: Running pip as root will break packages and permissions. You should install packages reliably by using venv: https://pip.pypa.io/warnings/venv\u001b[0m\n", + "Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple\n", + "Requirement already satisfied: openpyxl in /usr/local/lib/python3.7/dist-packages (3.0.7)\n", + "Requirement already satisfied: et-xmlfile in /usr/local/lib/python3.7/dist-packages (from openpyxl) (1.0.1)\n", + "\u001b[33mWARNING: Running pip as root will break packages and permissions. You should install packages reliably by using venv: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "# Install packages\n", + "!sudo pip3 install pandas\n", + "!sudo pip3 install openpyxl" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Install newest pip (optional)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple\n", + "Requirement already satisfied: pip in /usr/local/lib/python3.7/dist-packages (21.1.1)\n", + "\u001b[33mWARNING: Running pip as root will break packages and permissions. You should install packages reliably by using venv: https://pip.pypa.io/warnings/venv\u001b[0m\n" + ] + } + ], + "source": [ + "!sudo /usr/bin/python3 -m pip install --upgrade pip" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Install libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import datetime\n", + "import os" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prepare dataframe 'profiles' from https://gitlab.fabcloud.org\n", + "Options\n", + "* Read xlsx data from gitlab.fabcloud.org to pandas dataframe 'profiles'\n", + "* Save dataframe 'profiles' to data/profiles.csv\n", + "* Read dataframe 'profiles' from data/profiles.csv" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(244, 29)" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Get data from gitlab.fabcloud.org\n", + "# Read XLSX sheet with fab lab sdg profiles\n", + "url = 'https://gitlab.fabcloud.org/fl-management/fl-sdgs/sdg-workshop/-/raw/master/'\n", + "url = url + 'aggregated-results/FabLab-SDGProfile-Registration.xlsx' \n", + "timestamp = datetime.datetime.utcnow()\n", + "profiles=pd.read_excel(url, 'processing', index_col=27)\n", + "\n", + "# Write dataframe to local storage\n", + "if not os.path.exists('data'):\n", + " os.makedirs('data')\n", + "\n", + "# Write dataframe to csv-file\n", + "profiles.to_csv('data/profiles.csv')\n", + "\n", + "# Read dataframe from local storage\n", + "profiles = pd.read_csv('data/profiles.csv')\n", + " \n", + "# log number of objects and number of fields\n", + "if not os.path.exists('output'):\n", + " os.makedirs('output')\n", + "line = str(timestamp) + ' - ' + url + ' - ' + str(profiles.shape)\n", + "f = open('output/log.txt', 'a')\n", + "f.write(line)\n", + "#f.close() \n", + "\n", + "profiles.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Clean dataframe 'profiles'\n", + "* Delete verbose and superfluous columns\n", + "* Skip empty rows" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "ename": "KeyError", + "evalue": "'Enter your SDG profile by ticking 2-4 SDGs'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3079\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3080\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3081\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mKeyError\u001b[0m: 'Enter your SDG profile by ticking 2-4 SDGs'", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m<ipython-input-38-c721ca6096fb>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Clean dataframe 'profiles'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;31m# Delete verbose and superfluous columns 6-7\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0;32mdel\u001b[0m \u001b[0mprofiles\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Enter your SDG profile by ticking 2-4 SDGs'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0;32mdel\u001b[0m \u001b[0mprofiles\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'One more thing!'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m__delitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3964\u001b[0m \u001b[0;31m# there was no match, this call should raise the appropriate\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3965\u001b[0m \u001b[0;31m# exception:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3966\u001b[0;31m \u001b[0mloc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3967\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_mgr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0midelete\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3968\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3080\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3081\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3082\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3083\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3084\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtolerance\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mKeyError\u001b[0m: 'Enter your SDG profile by ticking 2-4 SDGs'" + ] + } + ], + "source": [ + "# Clean dataframe 'profiles'\n", + "# Delete verbose and superfluous columns 6-7\n", + "del profiles['Enter your SDG profile by ticking 2-4 SDGs']\n", + "del profiles['One more thing!']\n", + "\n", + "profiles.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "<class 'pandas.core.frame.DataFrame'>\n", + "Int64Index: 238 entries, 0 to 237\n", + "Data columns (total 27 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 slug 231 non-null object\n", + " 1 Tijdstempel 238 non-null object\n", + " 2 E-mailadres 238 non-null object\n", + " 3 Your fullname 238 non-null object\n", + " 4 The name of your fab lab 238 non-null object\n", + " 5 Country of your fab lab 237 non-null object\n", + " 6 URL of your fab lab page on www.fablabs.io 238 non-null object\n", + " 7 SDG 1 9 non-null object\n", + " 8 SDG 2 13 non-null object\n", + " 9 SDG 3 26 non-null object\n", + " 10 SDG 4 190 non-null object\n", + " 11 SDG 5 75 non-null object\n", + " 12 SDG 6 14 non-null object\n", + " 13 SDG 7 33 non-null object\n", + " 14 SDG 8 68 non-null object\n", + " 15 SDG 9 156 non-null object\n", + " 16 SDG 10 24 non-null object\n", + " 17 SDG 11 82 non-null object\n", + " 18 SDG 12 102 non-null object\n", + " 19 SDG 13 24 non-null object\n", + " 20 SDG 14 7 non-null object\n", + " 21 SDG 15 18 non-null object\n", + " 22 SDG 16 2 non-null object\n", + " 23 SDG 17 42 non-null object\n", + " 24 summary 238 non-null object\n", + " 25 status 238 non-null object\n", + " 26 check 221 non-null object\n", + "dtypes: object(27)\n", + "memory usage: 27.0+ KB\n" + ] + } + ], + "source": [ + "# Clean dataframe 'profiles'\n", + "# Skip empty rows\n", + "profiles = profiles.loc[profiles['Tijdstempel'].notna()]\n", + "\n", + "profiles.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prepare dataframe 'fablabs' from https://fablabs.io\n", + "Options\n", + "* Read json data from fablabs.io to pandas dataframe 'fablabs'\n", + "* Save dataframe 'fablabs' to data/fablabs.csv\n", + "* Read dataframe 'fablabs' from data/fablabs.csv" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "92" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Get data from fablabs.io web site\n", + "# Read JSON from website and convert to Dataframe\n", + "url = \"https://fablabs.io/labs.json?class=btn+btn-primary\"\n", + "timestamp = datetime.datetime.utcnow()\n", + "fablabs = pd.read_json(url)\n", + "fablabs = fablabs.set_index('slug')\n", + "\n", + "# Write dataframe to local storage\n", + "if not os.path.exists('data'):\n", + " os.makedirs('data')\n", + "\n", + "# Write dataframe to csv-file\n", + "fablabs.to_csv('data/fablabs.csv')\n", + "\n", + "# Read dataframe from local storage\n", + "#fablabs = pd.read_csv('data/fablabs.csv')\n", + "\n", + "# log number of objects and number of fields\n", + "if not os.path.exists('output'):\n", + " os.makedirs('output')\n", + "line = str(timestamp) + ' - ' + url + ' - ' + str(fablabs.shape)\n", + "f = open('output/log.txt', 'a')\n", + "f.write(line)\n", + "#f.close() \n", + "\n", + "fablabs.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Merge profiles data with fablabs data" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "<class 'pandas.core.frame.DataFrame'>\n", + "Int64Index: 238 entries, 0 to 237\n", + "Data columns (total 49 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 slug 231 non-null object \n", + " 1 Tijdstempel 238 non-null object \n", + " 2 E-mailadres 238 non-null object \n", + " 3 Your fullname 238 non-null object \n", + " 4 The name of your fab lab 238 non-null object \n", + " 5 Country of your fab lab 237 non-null object \n", + " 6 URL of your fab lab page on www.fablabs.io 238 non-null object \n", + " 7 SDG 1 9 non-null object \n", + " 8 SDG 2 13 non-null object \n", + " 9 SDG 3 26 non-null object \n", + " 10 SDG 4 190 non-null object \n", + " 11 SDG 5 75 non-null object \n", + " 12 SDG 6 14 non-null object \n", + " 13 SDG 7 33 non-null object \n", + " 14 SDG 8 68 non-null object \n", + " 15 SDG 9 156 non-null object \n", + " 16 SDG 10 24 non-null object \n", + " 17 SDG 11 82 non-null object \n", + " 18 SDG 12 102 non-null object \n", + " 19 SDG 13 24 non-null object \n", + " 20 SDG 14 7 non-null object \n", + " 21 SDG 15 18 non-null object \n", + " 22 SDG 16 2 non-null object \n", + " 23 SDG 17 42 non-null object \n", + " 24 summary 238 non-null object \n", + " 25 status 238 non-null object \n", + " 26 check 221 non-null object \n", + " 27 id 225 non-null float64\n", + " 28 name 225 non-null object \n", + " 29 kind_name 225 non-null object \n", + " 30 parent_id 75 non-null float64\n", + " 31 blurb 224 non-null object \n", + " 32 description 224 non-null object \n", + " 33 avatar_url 193 non-null object \n", + " 34 header_url 171 non-null object \n", + " 35 address_1 224 non-null object \n", + " 36 address_2 224 non-null object \n", + " 37 city 225 non-null object \n", + " 38 county 225 non-null object \n", + " 39 postal_code 225 non-null object \n", + " 40 country_code 225 non-null object \n", + " 41 latitude 217 non-null float64\n", + " 42 longitude 217 non-null float64\n", + " 43 address_notes 224 non-null object \n", + " 44 phone 224 non-null object \n", + " 45 email 224 non-null object \n", + " 46 capabilities 225 non-null object \n", + " 47 activity_status 206 non-null object \n", + " 48 links 225 non-null object \n", + "dtypes: float64(4), object(45)\n", + "memory usage: 51.1+ KB\n" + ] + } + ], + "source": [ + "#air_quality = pd.merge(air_quality, stations_coord, how=\"left\", on=\"location\")\n", + "profiles = pd.merge(profiles, fablabs, how=\"left\", on=\"slug\")\n", + "profiles.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## State-of-affairs\n", + "\n", + "* input profiles, input fablabs and merging profiles+fablabs ok " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}