{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Práctica 4: Análisis de datos sobre nivel de formación en España" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Escribimos un primer mensaje para mostrar en pantalla" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " ¡Hola,mundo!\n" ] } ], "source": [ "print(\" ¡Hola,mundo!\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Importamos la librería que vamos a usar, pandas, y utilizamos la asignación 'as'para llamarlo simplemente pd a lo largo de todo el proceso y no tener que escribir 'pandas' cada vez" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Primer hemos descargado la base de datos y la hemos subido a Github para tener siempre acceso a ella (para ello hemos añadido ?raw=true al final del link para poder leerlo con pandas). No obstante, podríamos haber llamado directamente al link" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "url='https://github.com/Alejandraa98/practicas-periodismo-de-datos/blob/main/practica-4.csv?raw=true'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Leemos la base de datos a partir del URL especificando los delimitadores y la asignamos a la variable df" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "df = pd.read_csv(url,delimiter= ';')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Escribiendo df podemos acceder al contenido de esa base de datos, en este caso expresada a través de la tabla" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SexoCicloNivel de formación más apropiado para realizar su trabajoTotal
0Ambos sexosTotalTotal trabajando90.506
1Ambos sexosTotalTítulo universitario17.969
2Ambos sexosTotalFormación profesional de grado superior46.756
3Ambos sexosTotalFormación profesional de grado medio / bachill...11.386
4Ambos sexosTotalFormación profesional básica3.760
...............
1318Mujeres15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...Formación profesional de grado superior100.000
1319Mujeres15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...Formación profesional de grado medio / bachill...25.000
1320Mujeres15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...Formación profesional básica13.000
1321Mujeres15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...ESO, EGB, etc ...47.000
1322Mujeres15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...No consta5.000
\n", "

1323 rows × 4 columns

\n", "
" ], "text/plain": [ " Sexo Ciclo \\\n", "0 Ambos sexos Total \n", "1 Ambos sexos Total \n", "2 Ambos sexos Total \n", "3 Ambos sexos Total \n", "4 Ambos sexos Total \n", "... ... ... \n", "1318 Mujeres 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C... \n", "1319 Mujeres 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C... \n", "1320 Mujeres 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C... \n", "1321 Mujeres 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C... \n", "1322 Mujeres 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C... \n", "\n", " Nivel de formación más apropiado para realizar su trabajo Total \n", "0 Total trabajando 90.506 \n", "1 Título universitario 17.969 \n", "2 Formación profesional de grado superior 46.756 \n", "3 Formación profesional de grado medio / bachill... 11.386 \n", "4 Formación profesional básica 3.760 \n", "... ... ... \n", "1318 Formación profesional de grado superior 100.000 \n", "1319 Formación profesional de grado medio / bachill... 25.000 \n", "1320 Formación profesional básica 13.000 \n", "1321 ESO, EGB, etc ... 47.000 \n", "1322 No consta 5.000 \n", "\n", "[1323 rows x 4 columns]" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Mediante las funciones head y tail podemos visualizar la parte superior e inferior de los datos respectivamente" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SexoCicloNivel de formación más apropiado para realizar su trabajoTotal
0Ambos sexosTotalTotal trabajando90.506
1Ambos sexosTotalTítulo universitario17.969
2Ambos sexosTotalFormación profesional de grado superior46.756
3Ambos sexosTotalFormación profesional de grado medio / bachill...11.386
4Ambos sexosTotalFormación profesional básica3.760
\n", "
" ], "text/plain": [ " Sexo Ciclo \\\n", "0 Ambos sexos Total \n", "1 Ambos sexos Total \n", "2 Ambos sexos Total \n", "3 Ambos sexos Total \n", "4 Ambos sexos Total \n", "\n", " Nivel de formación más apropiado para realizar su trabajo Total \n", "0 Total trabajando 90.506 \n", "1 Título universitario 17.969 \n", "2 Formación profesional de grado superior 46.756 \n", "3 Formación profesional de grado medio / bachill... 11.386 \n", "4 Formación profesional básica 3.760 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SexoCicloNivel de formación más apropiado para realizar su trabajoTotal
1318Mujeres15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...Formación profesional de grado superior100.0
1319Mujeres15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...Formación profesional de grado medio / bachill...25.0
1320Mujeres15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...Formación profesional básica13.0
1321Mujeres15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...ESO, EGB, etc ...47.0
1322Mujeres15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...No consta5.0
\n", "
" ], "text/plain": [ " Sexo Ciclo \\\n", "1318 Mujeres 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C... \n", "1319 Mujeres 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C... \n", "1320 Mujeres 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C... \n", "1321 Mujeres 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C... \n", "1322 Mujeres 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C... \n", "\n", " Nivel de formación más apropiado para realizar su trabajo Total \n", "1318 Formación profesional de grado superior 100.0 \n", "1319 Formación profesional de grado medio / bachill... 25.0 \n", "1320 Formación profesional básica 13.0 \n", "1321 ESO, EGB, etc ... 47.0 \n", "1322 No consta 5.0 " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.tail()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Con la función columns podemos visualizar el nombre de cada columna" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['Sexo', 'Ciclo',\n", " 'Nivel de formación más apropiado para realizar su trabajo', 'Total'],\n", " dtype='object')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Escribiendo los nombres de las columnas Ciclo y Nivel de formación más apropiado para realizar su trabajo accedemos a la información que estas columnas contienen" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 Total\n", "1 Total\n", "2 Total\n", "3 Total\n", "4 Total\n", " ... \n", "1318 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...\n", "1319 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...\n", "1320 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...\n", "1321 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...\n", "1322 15 - VIDRIO Y CERÁMICA 16 - MADERA, MUEBLE Y C...\n", "Name: Ciclo, Length: 1323, dtype: object" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['Ciclo']" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 Total trabajando\n", "1 Título universitario\n", "2 Formación profesional de grado superior\n", "3 Formación profesional de grado medio / bachill...\n", "4 Formación profesional básica\n", " ... \n", "1318 Formación profesional de grado superior\n", "1319 Formación profesional de grado medio / bachill...\n", "1320 Formación profesional básica\n", "1321 ESO, EGB, etc ...\n", "1322 No consta\n", "Name: Nivel de formación más apropiado para realizar su trabajo, Length: 1323, dtype: object" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['Nivel de formación más apropiado para realizar su trabajo']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Si queremos acceder directamente al valor de la fila 4, primero concretamos la columna y luego escribimos en corchetes el número de la fila a la que queremos acceder. En el segundo caso, en el que se hace la prueba con el número de fila 1324 hay un error ya que la última fila es la 1322 y por tanto no existe" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Ambos sexos'" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['Sexo'][4]" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "ename": "KeyError", "evalue": "1324", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m/usr/local/lib/python3.8/dist-packages/pandas/core/indexes/range.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 384\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--> 385\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_range\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnew_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 386\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mValueError\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;31mValueError\u001b[0m: 1324 is not in range", "\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\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Sexo'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1324\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/usr/local/lib/python3.8/dist-packages/pandas/core/series.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 940\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 941\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mkey_is_scalar\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 942\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_value\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 943\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 944\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_hashable\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[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.8/dist-packages/pandas/core/series.py\u001b[0m in \u001b[0;36m_get_value\u001b[0;34m(self, label, takeable)\u001b[0m\n\u001b[1;32m 1049\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1050\u001b[0m \u001b[0;31m# Similar to Index.get_value, but we do not fall back to positional\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1051\u001b[0;31m \u001b[0mloc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\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[0mlabel\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 1052\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_values_for_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mloc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1053\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/usr/local/lib/python3.8/dist-packages/pandas/core/indexes/range.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 385\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_range\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnew_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 386\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mValueError\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--> 387\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 388\u001b[0m \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;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 389\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\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[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtolerance\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtolerance\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: 1324" ] } ], "source": [ "df['Sexo'][1324]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Para obtener información sobre valores numéricos de una columna utilizamos la función describe" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "count 1323.000000\n", "mean 143.394738\n", "std 206.208199\n", "min 0.000000\n", "25% 8.000000\n", "50% 50.000000\n", "75% 183.500000\n", "max 970.000000\n", "Name: Total, dtype: float64" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['Total'].describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Con la función unique obtenemos valores únicos de cada columna, en este caso de la columna que se indica anteriormente entre corchetes" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Total trabajando', 'Título universitario',\n", " 'Formación profesional de grado superior',\n", " 'Formación profesional de grado medio / bachillerato',\n", " 'Formación profesional básica', 'ESO, EGB, etc ...', 'No consta'],\n", " dtype=object)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['Nivel de formación más apropiado para realizar su trabajo'].unique()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Importamos la librería 'matplotlib', la renombramos como plt para facilitar su escritura. De esta manera, podremos visualizar mediante un gráfico de barras la información de la base de datos que antes hemos analizado" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.bar(df['Sexo'],df['Total']) \n", "plt.show()" ] } ], "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.8.10" } }, "nbformat": 4, "nbformat_minor": 4 }