Pirámide de población con Python y Pandas


Vamos a generar una piramide de poblacion, importando los datos desde INE, y generando el gráfico con matplotlib

Empezamos importando las librerias necesarias :

import matplotlib
#from plotly.graph_objs import *
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import plotly.graph_objs as go
import plotly.plotly as py
import datetime, requests

con esta lineas le pedimos a matplotlib que nos presente los graficos en este notebook

%matplotlib inline

Generamos un par de plantillas para facilitar la generacion de la URL para atacar el webservice del INE

url_plantilla_Serie = 'http://servicios.ine.es/wstempus/js/ES/DATOS_SERIE/{codigo}?nult={num_datos}'
url_plantilla_Tabla= 'http://servicios.ine.es/wstempus/js/ES/DATOS_TABLA/{codigo}?nult={num_datos}'

En la siguientes lineas se define el código de la query a descargar y el número de datos que refiere al numero de periodos. Estamos trabajando con un tipo de datos disponible desde el año 200, con dos publicaciones por año, luego con 30/35 seria suficiente..aun asi empece a usar 100 y así lo deje..

codigo = "9663"
num_datos=100

Preparamos el string con el URL correcto con el que solicitar los datos a través del web service de http://www.ine.es

url = url_plantilla_Tabla.format(codigo=codigo,num_datos=num_datos)

Con la plantilla ya preparada solicitamos la informacion

respuesta_poblacion = requests.get(url)

Ya la tenemos, y preparamos un pandas con la respuesta en formato json. Seguro que se puede utilizar otros muchos formatos, yo he decidido empezar por json, cuando tenga suficiente destreza probaré con otros formatos.

datos_poblacion=pd.DataFrame(respuesta_poblacion.json())

Jugemos un poco para entender la estructura de la información descargada…

datos_poblacion.loc[[2]]

.dataframe thead tr:only-child th {
text-align: right;
}

.dataframe thead th {
text-align: left;
}

.dataframe tbody tr th {
vertical-align: top;
}

COD Data FK_Escala FK_Unidad Nombre
2 CP300334 [{‘Fecha’: 1483225200000, ‘FK_TipoDato’: 2, ‘F… 1 3 Total Nacional. Todas las edades. Mujeres. Pob…
datos_poblacion.columns
Index(['COD', 'Data', 'FK_Escala', 'FK_Unidad', 'Nombre'], dtype='object')
len(datos_poblacion)
324

Vemos que tenemos 324 series de datos…veamos ahora que hay las tres columnas que mas nos importan : COD: como código de esa tabla especifica, Data : campo de datos con los valores correspondientes a esa tabla desde 2002 hasta 2017 y Nombre : nombre de la tabla..

datos_poblacion[['COD','Nombre']]

.dataframe thead tr:only-child th {
text-align: right;
}

.dataframe thead th {
text-align: left;
}

.dataframe tbody tr th {
vertical-align: top;
}

COD Nombre
0 CP335 Total Nacional. Todas las edades. Total. Pobla…
1 CP300335 Total Nacional. Todas las edades. Hombres. Pob…
2 CP300334 Total Nacional. Todas las edades. Mujeres. Pob…
3 CP300333 Total Nacional. 0 años. Total. Población. Núme…
4 CP300332 Total Nacional. 0 años. Hombres. Población. Nú…
5 CP300331 Total Nacional. 0 años. Mujeres. Población. Nú…
6 CP300330 Total Nacional. 1 año. Total. Población. Número.
7 CP300329 Total Nacional. 1 año. Hombres. Población. Núm…
8 CP300328 Total Nacional. 1 año. Mujeres. Población. Núm…
9 CP300327 Total Nacional. 2 años. Total. Población. Núme…
10 CP300326 Total Nacional. 2 años. Hombres. Población. Nú…
11 CP300325 Total Nacional. 2 años. Mujeres. Población. Nú…
12 CP300324 Total Nacional. 3 años. Total. Población. Núme…
13 CP300323 Total Nacional. 3 años. Hombres. Población. Nú…
14 CP300322 Total Nacional. 3 años. Mujeres. Población. Nú…
15 CP300321 Total Nacional. 4 años. Total. Población. Núme…
16 CP300320 Total Nacional. 4 años. Hombres. Población. Nú…
17 CP300319 Total Nacional. 4 años. Mujeres. Población. Nú…
18 CP300318 Total Nacional. 5 años. Total. Población. Núme…
19 CP300317 Total Nacional. 5 años. Hombres. Población. Nú…
20 CP300316 Total Nacional. 5 años. Mujeres. Población. Nú…
21 CP300315 Total Nacional. 6 años. Total. Población. Núme…
22 CP300314 Total Nacional. 6 años. Hombres. Población. Nú…
23 CP300313 Total Nacional. 6 años. Mujeres. Población. Nú…
24 CP300312 Total Nacional. 7 años. Total. Población. Núme…
25 CP300311 Total Nacional. 7 años. Hombres. Población. Nú…
26 CP300310 Total Nacional. 7 años. Mujeres. Población. Nú…
27 CP300309 Total Nacional. 8 años. Total. Población. Núme…
28 CP300308 Total Nacional. 8 años. Hombres. Población. Nú…
29 CP300307 Total Nacional. 8 años. Mujeres. Población. Nú…
294 CP300042 Total Nacional. 97 años. Total. Población. Núm…
295 CP300041 Total Nacional. 97 años. Hombres. Población. N…
296 CP300040 Total Nacional. 97 años. Mujeres. Población. N…
297 CP300039 Total Nacional. 98 años. Total. Población. Núm…
298 CP300038 Total Nacional. 98 años. Hombres. Población. N…
299 CP300037 Total Nacional. 98 años. Mujeres. Población. N…
300 CP300036 Total Nacional. 99 años. Total. Población. Núm…
301 CP300035 Total Nacional. 99 años. Hombres. Población. N…
302 CP300034 Total Nacional. 99 años. Mujeres. Población. N…
303 CP300033 Total Nacional. 100 años. Total. Población. Nú…
304 CP300032 Total Nacional. 100 años. Hombres. Población. …
305 CP300031 Total Nacional. 100 años. Mujeres. Población. …
306 CP300030 Total Nacional. 101 años. Total. Población. Nú…
307 CP300029 Total Nacional. 101 años. Hombres. Población. …
308 CP300028 Total Nacional. 101 años. Mujeres. Población. …
309 CP300027 Total Nacional. 102 años. Total. Población. Nú…
310 CP300026 Total Nacional. 102 años. Hombres. Población. …
311 CP300025 Total Nacional. 102 años. Mujeres. Población. …
312 CP300024 Total Nacional. 103 años. Total. Población. Nú…
313 CP300023 Total Nacional. 103 años. Hombres. Población. …
314 CP300022 Total Nacional. 103 años. Mujeres. Población. …
315 CP300021 Total Nacional. 104 años. Total. Población. Nú…
316 CP300020 Total Nacional. 104 años. Hombres. Población. …
317 CP300019 Total Nacional. 104 años. Mujeres. Población. …
318 CP429776 100 y más años. Total Nacional. Total. Poblaci…
319 CP429775 100 y más años. Total Nacional. Hombres. Pobla…
320 CP429774 100 y más años. Total Nacional. Mujeres. Pobla…
321 CP557205 Total Nacional. 105 y más años. Total. Poblaci…
322 CP557204 Total Nacional. 105 y más años. Hombres. Pobla…
323 CP557203 Total Nacional. 105 y más años. Mujeres. Pobla…

324 rows × 2 columns

Varios apuntes importantes :
a) En la columna ‘Nombre’ hay información relevante, pero concatenadas en el string. Tendremos que trabajarla más adelante para extraer esa información.
b) Las líneas 0,1,2,318,319 y 320 tienen un formato diferente, y no nos dan informacion relevante en este ejercicio asi que he decidido eliminarlas
c) No he incluido la columna Data para facilidad de lectura, aunque podemos ver un ejemplo aqui :

datos_poblacion.drop([0,1,2,318,319,320],inplace=True)
datos_poblacion.loc[[200]]['Data'].values[0]
[{'Anyo': 2017,
  'FK_Periodo': 26,
  'FK_TipoDato': 2,
  'Fecha': 1483225200000,
  'Secreto': False,
  'Valor': 246464.0},
 {'Anyo': 2016,
  'FK_Periodo': 27,
  'FK_TipoDato': 2,
  'Fecha': 1467324000000,
  'Secreto': False,
  'Valor': 244368.0},
 {'Anyo': 2016,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1451602800000,
  'Secreto': False,
  'Valor': 242277.0},
 {'Anyo': 2015,
  'FK_Periodo': 27,
  'FK_TipoDato': 1,
  'Fecha': 1435701600000,
  'Secreto': False,
  'Valor': 248047.0},
 {'Anyo': 2015,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1420066800000,
  'Secreto': False,
  'Valor': 254064.0},
 {'Anyo': 2014,
  'FK_Periodo': 27,
  'FK_TipoDato': 1,
  'Fecha': 1404165600000,
  'Secreto': False,
  'Valor': 260274.0},
 {'Anyo': 2014,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1388530800000,
  'Secreto': False,
  'Valor': 266616.0},
 {'Anyo': 2013,
  'FK_Periodo': 27,
  'FK_TipoDato': 1,
  'Fecha': 1372629600000,
  'Secreto': False,
  'Valor': 255873.0},
 {'Anyo': 2013,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1356994800000,
  'Secreto': False,
  'Valor': 245325.0},
 {'Anyo': 2012,
  'FK_Periodo': 27,
  'FK_TipoDato': 1,
  'Fecha': 1341093600000,
  'Secreto': False,
  'Valor': 240917.0},
 {'Anyo': 2012,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1325372400000,
  'Secreto': False,
  'Valor': 236490.0},
 {'Anyo': 2011,
  'FK_Periodo': 27,
  'FK_TipoDato': 1,
  'Fecha': 1309471200000,
  'Secreto': False,
  'Valor': 242303.0},
 {'Anyo': 2011,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1293836400000,
  'Secreto': False,
  'Valor': 248146.0},
 {'Anyo': 2010,
  'FK_Periodo': 27,
  'FK_TipoDato': 1,
  'Fecha': 1277935200000,
  'Secreto': False,
  'Valor': 242722.0},
 {'Anyo': 2010,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1262300400000,
  'Secreto': False,
  'Valor': 237374.0},
 {'Anyo': 2009,
  'FK_Periodo': 27,
  'FK_TipoDato': 1,
  'Fecha': 1246399200000,
  'Secreto': False,
  'Valor': 235987.0},
 {'Anyo': 2009,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1230764400000,
  'Secreto': False,
  'Valor': 234576.0},
 {'Anyo': 2008,
  'FK_Periodo': 27,
  'FK_TipoDato': 1,
  'Fecha': 1214863200000,
  'Secreto': False,
  'Valor': 218992.0},
 {'Anyo': 2008,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1199142000000,
  'Secreto': False,
  'Valor': 203375.0},
 {'Anyo': 2007,
  'FK_Periodo': 27,
  'FK_TipoDato': 1,
  'Fecha': 1183240800000,
  'Secreto': False,
  'Valor': 195625.0},
 {'Anyo': 2007,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1167606000000,
  'Secreto': False,
  'Valor': 187751.0},
 {'Anyo': 2006,
  'FK_Periodo': 27,
  'FK_TipoDato': 1,
  'Fecha': 1151704800000,
  'Secreto': False,
  'Valor': 210446.0},
 {'Anyo': 2006,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1136070000000,
  'Secreto': False,
  'Valor': 233206.0},
 {'Anyo': 2005,
  'FK_Periodo': 27,
  'FK_TipoDato': 1,
  'Fecha': 1120168800000,
  'Secreto': False,
  'Valor': 195814.0},
 {'Anyo': 2005,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1104534000000,
  'Secreto': False,
  'Valor': 158463.0},
 {'Anyo': 2004,
  'FK_Periodo': 27,
  'FK_TipoDato': 1,
  'Fecha': 1088632800000,
  'Secreto': False,
  'Valor': 169264.0},
 {'Anyo': 2004,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1072911600000,
  'Secreto': False,
  'Valor': 180200.0},
 {'Anyo': 2003,
  'FK_Periodo': 27,
  'FK_TipoDato': 1,
  'Fecha': 1057010400000,
  'Secreto': False,
  'Valor': 191501.0},
 {'Anyo': 2003,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1041375600000,
  'Secreto': False,
  'Valor': 202882.0},
 {'Anyo': 2002,
  'FK_Periodo': 27,
  'FK_TipoDato': 1,
  'Fecha': 1025474400000,
  'Secreto': False,
  'Valor': 215395.0},
 {'Anyo': 2002,
  'FK_Periodo': 26,
  'FK_TipoDato': 1,
  'Fecha': 1009839600000,
  'Secreto': False,
  'Valor': 228268.0}]

La estructura de Data es la de una lista con diccionarios como valores, cada uno de los diccionarios se refiere a un año, en realidad hay dos diccionarios por año correspondientes a las dos publicaciones : Enero y Julio..Las claves de los diccionarios son ‘Anyo’, FK_Periodo, FK_Tipo_dato, ‘Fecha’,’Secreto’ y ‘Valor’. La Fecha esta en formato DateTime/TimeStamp, veamos un ejemplo: aqui sacamos al informacion correspondiente al registro #100 y al sexto registro de su ‘Data’ (indice 5 corresponde a registro sexto) :

print ('Serie {}\nNombre {}\nAño {}\nFecha {}\nValor {:,.0f}'.format(
                                                    datos_poblacion.loc[[100]]['COD'].values[0],
                                                    datos_poblacion.loc[[100]]['Nombre'].values[0],
                                                    datos_poblacion.loc[[100]]['Data'].values[0][5]['Anyo'],
                                                    datetime.date.fromtimestamp(datos_poblacion.loc[[100]]['Data'].values[0][5]['Fecha']/1000),
                                                    datos_poblacion.loc[[100]]['Data'].values[0][5]['Valor']
                                                )
      )
Serie CP300236
Nombre Total Nacional. 32 años. Hombres. Población. Número. 
Año 2014
Fecha 2014-07-01
Valor 339,003

Esto se lee tal que : la serie CP300236 correspondiente a Total Nacional. 32 añosa Hombre.Poblacion.Numero en su registro sexto , correspondiente al ejercicioo de Julio 2014 nos da una poblacion de 339.003 personas..

Empezemos pues a trabajar los datos para poder generar la Piramide buscada…

En primer lugar generamos un par de funciones auxiliares para poder trabajar el campo ‘nombre, que como hemos visto lleva contenadas informacion relevante sobre el tipo de tabla, la edad, y el género (Hombre/Mujer/Total)

spliteador_edad = lambda x: x.split('.')[1].split()[0]
spliteador_genero=lambda x: x.split('.')[2].strip()
spliteador_edad_genero=lambda x: [x.split('.')[1].split()[0],x.split('.')[2].strip()]

y aqui un poco de código para ver por pantalla todos los datos importados. He limitado el número de periodos y he dividido la poblacion por mil para facilitar su vision en pantalla

annyos=list()
for x in datos_poblacion.index:
    print ('\nEdad {} años, genero {}'.format(
           datos_poblacion.loc[[x]]['Nombre'].apply(spliteador_edad).values[0],
           datos_poblacion.loc[[x]]['Nombre'].apply(spliteador_genero).values[0]
          )
          )
    for y in range(0,len(datos_poblacion.loc[[x]]['Data'].values[0])-19):
        if y!=len(datos_poblacion.loc[[x]]['Data'].values[0])-20:
            print ('{:3s} '.format(str(datos_poblacion.loc[[x]]['Data'].values[0][y]['Anyo'])[2:]),end='')   
        else:
            print ('{:3s} '.format(str(datos_poblacion.loc[[x]]['Data'].values[0][y]['Anyo'])[2:]))
    for y in range(0,len(datos_poblacion.loc[[x]]['Data'].values[0])-19):
        print ('{:2.0f} '.format(datos_poblacion.loc[[x]]['Data'].values[0][y]['Valor']/1000),end='')
Edad 0 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
408 410 419 418 426 420 425 433 453 462 476 475 
Edad 0 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
210 211 216 216 220 217 219 223 234 238 245 245 
Edad 0 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
198 199 203 202 206 204 206 210 220 224 231 230 
Edad 1 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
424 426 430 427 426 439 453 464 476 479 484 489 
Edad 1 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
218 220 222 220 219 226 234 239 245 247 249 253 
Edad 1 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
206 206 208 207 207 213 219 225 231 232 234 237 
Edad 2 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
432 430 427 440 453 463 473 477 481 488 494 508 
Edad 2 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
223 221 220 227 233 238 244 246 248 252 256 262 
Edad 2 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
209 208 208 213 219 224 229 231 233 236 239 245 
Edad 3 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
430 441 454 463 472 476 480 486 493 507 521 511 
Edad 3 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
221 227 234 239 244 245 247 251 255 262 269 264 
Edad 3 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
209 214 220 224 229 230 232 235 238 245 252 247 
Edad 4 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
455 464 473 475 479 484 491 505 520 511 502 500 
Edad 4 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
235 239 244 245 247 250 254 261 268 264 259 258 
Edad 4 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
221 225 229 230 232 234 237 244 251 247 243 242 
Edad 5 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
474 476 479 484 490 503 518 509 501 500 498 493 
Edad 5 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
244 245 247 250 253 260 267 263 259 258 257 254 
Edad 5 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
230 230 232 234 236 243 250 246 242 242 241 239 
Edad 6 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
479 484 489 502 516 508 499 498 497 493 488 485 
Edad 6 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
247 250 253 260 267 262 257 257 256 254 251 249 
Edad 6 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
232 234 236 243 250 246 242 241 241 239 237 235 
Edad 7 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
490 502 516 507 498 497 496 491 487 485 482 478 
Edad 7 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
253 260 266 262 257 256 256 253 250 250 249 246 
Edad 7 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
236 243 249 245 241 240 240 238 237 235 234 232 
Edad 8 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
516 507 498 496 495 490 486 484 482 478 474 464 
Edad 8 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
267 262 257 256 255 252 250 249 248 246 243 238 
Edad 8 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
250 245 241 240 240 238 236 235 233 232 231 226 
Edad 9 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
499 497 495 490 485 483 481 477 474 465 455 453 
Edad 9 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
258 256 256 252 249 249 248 245 243 239 234 233 
Edad 9 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
241 240 240 238 236 234 233 232 231 226 221 221 
Edad 10 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
496 491 486 483 480 476 472 463 455 454 452 451 
Edad 10 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
256 253 250 248 248 245 242 238 234 233 232 232 
Edad 10 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
240 238 236 234 233 231 230 226 221 221 220 219 
Edad 11 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
487 483 481 476 472 463 454 453 452 452 452 445 
Edad 11 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
250 249 248 245 242 238 233 232 232 232 233 229 
Edad 11 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
237 234 233 231 230 225 221 220 220 219 218 216 
Edad 12 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
482 477 472 463 454 452 451 451 451 446 441 434 
Edad 12 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
248 245 242 238 233 232 231 232 233 230 226 223 
Edad 12 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
233 232 230 225 221 220 220 219 218 216 215 210 
Edad 13 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
474 464 455 453 451 451 450 445 441 434 428 428 
Edad 13 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
243 238 234 232 231 232 233 229 226 224 221 220 
Edad 13 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
231 226 221 220 220 219 218 216 215 211 207 208 
Edad 14 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
457 454 452 451 451 445 440 434 428 429 430 427 
Edad 14 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
235 233 232 232 233 229 226 223 221 221 221 219 
Edad 14 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
222 221 220 219 218 216 214 210 207 208 209 208 
Edad 15 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
454 452 452 446 440 434 427 428 430 428 425 424 
Edad 15 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
233 233 233 229 226 223 221 221 221 220 218 218 
Edad 15 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
221 219 218 216 214 210 206 208 209 208 207 206 
Edad 16 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
454 447 441 434 427 428 430 428 426 425 424 426 
Edad 16 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
235 231 227 224 221 221 221 220 219 219 219 220 
Edad 16 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
219 217 215 210 206 208 209 208 207 207 206 207 
Edad 17 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
444 436 429 429 430 428 426 425 425 428 431 439 
Edad 17 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
228 225 222 221 221 220 219 219 219 221 222 226 
Edad 17 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
216 211 207 208 209 208 207 207 206 207 208 212 
Edad 18 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
433 433 433 430 427 426 426 429 432 441 450 457 
Edad 18 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
224 223 223 221 219 219 220 221 223 228 232 236 
Edad 18 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
209 209 211 209 208 207 206 208 209 214 218 221 
Edad 19 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
438 434 431 429 428 430 433 442 452 460 469 467 
Edad 19 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
225 223 221 220 220 221 223 227 233 237 241 241 
Edad 19 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
213 211 210 209 208 209 210 214 219 224 228 227 
Edad 20 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
436 433 431 433 435 443 452 461 470 471 471 474 
Edad 20 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
223 222 222 223 224 228 232 236 241 241 242 243 
Edad 20 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
213 211 210 210 212 216 220 224 229 229 229 231 
Edad 21 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
437 437 439 446 454 462 470 471 473 477 482 488 
Edad 21 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
224 224 225 229 232 236 240 241 242 244 246 249 
Edad 21 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
213 213 214 218 222 226 230 230 231 233 236 239 
Edad 22 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
444 450 458 464 472 471 472 477 484 491 499 506 
Edad 22 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
227 230 234 237 240 240 241 243 246 250 254 257 
Edad 22 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
217 220 224 228 232 231 231 234 238 242 246 249 
Edad 23 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
463 469 476 474 474 477 483 490 500 508 517 523 
Edad 23 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
236 238 241 241 241 242 244 248 253 257 261 265 
Edad 23 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
228 230 234 233 233 235 238 242 247 251 256 258 
Edad 24 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
481 478 477 480 484 490 498 506 517 525 534 543 
Edad 24 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
244 242 242 243 244 247 251 255 260 265 269 274 
Edad 24 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
237 236 235 237 239 242 247 251 257 261 265 269 
Edad 25 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
482 483 487 491 497 504 512 521 533 544 556 568 
Edad 25 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
244 244 245 248 250 254 257 262 268 274 279 287 
Edad 25 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
238 239 241 244 247 251 255 260 265 271 276 281 
Edad 26 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
491 494 499 505 511 518 526 539 553 568 582 596 
Edad 26 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
247 249 251 253 256 260 264 270 277 285 293 301 
Edad 26 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
244 246 248 251 255 258 263 269 276 283 289 295 
Edad 27 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
503 507 512 517 524 534 545 561 578 595 611 624 
Edad 27 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
253 254 257 259 262 267 272 281 290 299 308 316 
Edad 27 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
250 253 256 259 262 267 273 280 288 296 303 308 
Edad 28 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
516 519 524 533 543 555 569 587 606 622 637 659 
Edad 28 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
258 259 262 266 270 277 285 294 304 313 322 335 
Edad 28 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
258 260 262 267 272 278 284 293 301 308 315 325 
Edad 29 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
526 533 542 553 565 580 596 613 631 655 680 697 
Edad 29 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
263 266 270 276 282 290 298 308 317 331 345 355 
Edad 29 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
264 268 272 277 282 290 298 305 313 324 335 342 
Edad 30 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
543 553 564 577 591 605 620 645 672 693 713 733 
Edad 30 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
270 276 281 288 295 303 311 325 339 351 363 375 
Edad 30 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
273 277 282 289 296 302 309 321 333 341 350 359 
Edad 31 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
565 576 589 602 615 637 660 682 704 728 751 764 
Edad 31 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
282 287 294 301 308 320 332 344 357 370 383 391 
Edad 31 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
283 289 295 301 307 317 328 337 347 358 367 373 
Edad 32 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
590 601 613 633 654 673 693 717 742 759 774 794 
Edad 32 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
294 300 306 317 328 339 350 363 377 387 396 408 
Edad 32 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
296 301 307 316 326 334 343 354 365 372 378 386 
Edad 33 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
612 631 651 669 686 708 730 748 765 788 810 818 
Edad 33 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
305 316 326 336 346 358 369 379 389 403 416 422 
Edad 33 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
307 316 325 333 341 350 360 368 376 385 394 396 
Edad 34 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
651 667 683 703 724 739 754 778 802 812 822 831 
Edad 34 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
326 334 344 354 365 374 382 396 410 417 424 429 
Edad 34 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
326 332 340 349 358 365 372 382 391 395 398 402 
Edad 35 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
683 701 720 734 748 769 790 802 813 825 836 835 
Edad 35 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
343 353 363 371 378 390 403 410 418 424 430 431 
Edad 35 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
340 348 357 363 370 378 387 391 395 401 406 404 
Edad 36 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
719 732 744 764 784 794 803 816 828 830 830 829 
Edad 36 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
362 369 376 387 399 405 411 418 425 427 428 428 
Edad 36 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
358 363 369 377 386 389 392 398 404 403 402 401 
Edad 37 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
743 762 781 789 797 808 818 820 823 824 824 814 
Edad 37 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
374 385 396 402 407 413 418 421 423 424 424 420 
Edad 37 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
369 377 385 387 390 395 400 400 400 400 400 394 
Edad 38 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
779 786 794 803 813 813 813 815 817 810 802 802 
Edad 38 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
395 399 405 409 414 415 417 418 419 416 413 413 
Edad 38 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
385 387 389 394 398 397 397 397 398 394 389 388 
Edad 39 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
792 800 809 808 808 808 808 802 796 798 799 793 
Edad 39 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
403 407 412 412 413 413 413 411 409 410 411 408 
Edad 39 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
389 393 398 396 395 395 395 391 387 388 388 385 
Edad 40 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
808 806 804 803 803 795 788 790 793 789 785 781 
Edad 40 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
410 410 410 410 409 406 403 405 407 405 403 401 
Edad 40 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
398 396 394 394 393 389 385 385 386 384 382 379 
Edad 41 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
803 801 799 791 783 784 785 782 779 777 775 771 
Edad 41 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
409 408 407 403 400 401 401 400 399 398 398 395 
Edad 41 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
394 393 392 388 383 383 383 382 380 379 377 376 
Edad 42 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
797 788 780 780 780 776 771 770 769 768 765 763 
Edad 42 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
405 401 397 398 398 396 393 393 393 392 391 390 
Edad 42 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
392 387 383 382 382 380 378 377 376 375 375 373 
Edad 43 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
778 777 777 772 767 764 761 761 761 760 759 761 
Edad 43 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
396 396 396 393 390 389 388 388 387 387 387 388 
Edad 43 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
382 382 381 379 377 375 373 373 373 373 372 374 
Edad 44 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
775 769 764 760 757 755 754 754 754 758 762 752 
Edad 44 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
394 391 388 387 385 384 383 383 383 385 387 382 
Edad 44 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
381 378 376 374 372 371 371 371 371 373 375 370 
Edad 45 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
763 758 754 752 750 749 748 752 757 749 741 739 
Edad 45 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
387 385 383 381 380 379 379 381 383 380 376 374 
Edad 45 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
376 373 371 371 370 369 369 371 374 370 365 365 
Edad 46 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
752 750 747 745 744 747 751 744 737 736 735 740 
Edad 46 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
381 379 378 377 376 378 379 376 373 372 371 374 
Edad 46 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
371 370 369 368 367 370 372 368 364 364 364 366 
Edad 47 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
745 743 741 744 747 739 731 731 731 738 744 726 
Edad 47 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
376 375 374 375 377 373 369 369 368 371 375 366 
Edad 47 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
369 368 367 369 371 366 362 363 363 366 369 360 
Edad 48 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
739 742 745 736 728 727 725 733 740 724 707 696 
Edad 48 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
373 374 375 371 367 365 364 368 372 364 356 350 
Edad 48 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
367 368 370 366 361 361 361 364 368 360 351 346 
Edad 49 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
743 734 726 724 722 728 734 719 704 694 684 676 
Edad 49 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
373 369 365 363 362 365 368 361 353 348 343 339 
Edad 49 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
370 365 361 360 360 363 366 358 350 345 341 337 
Edad 50 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
724 722 720 725 731 715 698 689 680 673 666 669 
Edad 50 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
363 362 360 363 366 358 350 345 340 337 333 334 
Edad 50 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
361 360 360 362 365 357 348 344 340 337 333 334 
Edad 51 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
718 723 728 711 695 685 675 669 663 666 669 660 
Edad 51 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
358 361 364 356 348 342 337 334 330 332 334 330 
Edad 51 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
359 362 364 356 347 343 338 335 332 334 335 331 
Edad 52 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
726 709 692 682 671 665 658 662 666 658 650 643 
Edad 52 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
362 354 346 340 334 331 327 329 332 328 324 320 
Edad 52 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
364 355 347 342 337 334 331 332 334 330 326 323 
Edad 53 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
690 679 669 662 655 658 660 653 646 641 635 627 
Edad 53 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
344 338 332 329 325 327 328 325 321 318 316 312 
Edad 53 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
346 341 336 333 330 331 332 329 325 322 319 316 
Edad 54 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
667 659 652 654 657 649 641 636 631 624 618 598 
Edad 54 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
331 327 323 324 326 322 318 316 313 310 306 296 
Edad 54 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
336 332 329 330 331 327 323 321 318 315 312 301 
Edad 55 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
650 652 654 646 638 632 626 620 614 595 576 567 
Edad 55 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
321 323 324 320 316 313 310 307 304 294 285 281 
Edad 55 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
328 329 330 326 322 319 316 313 311 301 291 287 
Edad 56 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
652 643 635 629 623 616 610 591 572 565 558 545 
Edad 56 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
322 318 314 311 308 304 301 292 282 279 275 269 
Edad 56 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
330 326 321 318 315 312 309 299 290 286 282 276 
Edad 57 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
632 626 620 613 606 587 568 561 554 543 531 531 
Edad 57 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
312 308 305 302 298 289 280 276 273 267 261 261 
Edad 57 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
321 318 314 311 308 298 289 285 281 276 270 270 
Edad 58 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
617 610 603 584 565 557 550 539 528 529 530 529 
Edad 58 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
303 300 296 287 277 274 270 264 258 260 261 261 
Edad 58 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
314 310 307 297 288 284 280 274 269 269 269 269 
Edad 59 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
600 581 562 554 547 535 524 525 527 527 527 510 
Edad 59 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
294 284 275 271 268 262 256 257 258 259 259 251 
Edad 59 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
306 296 287 283 279 273 268 268 268 268 267 260 
Edad 60 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
559 551 543 532 520 521 523 523 524 508 492 487 
Edad 60 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
273 269 266 259 254 255 256 256 257 249 241 238 
Edad 60 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
286 282 278 272 267 267 267 267 266 259 251 249 
Edad 61 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
541 529 517 518 519 519 520 504 489 485 480 491 
Edad 61 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
263 257 251 252 253 254 254 246 238 236 234 239 
Edad 61 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
277 272 266 266 266 266 265 258 251 248 246 252 
Edad 62 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
515 515 516 516 516 501 485 481 477 488 499 511 
Edad 62 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
249 250 251 251 252 244 236 234 232 237 241 247 
Edad 62 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
265 265 265 265 264 257 249 247 245 251 257 263 
Edad 63 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
513 513 513 497 482 478 474 484 495 508 521 499 
Edad 63 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
249 249 250 242 233 231 230 234 239 245 252 241 
Edad 63 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
264 264 263 256 248 246 244 250 256 263 269 258 
Edad 64 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
509 494 479 474 470 480 491 504 517 496 475 465 
Edad 64 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
247 239 231 229 227 231 236 242 249 239 229 224 
Edad 64 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
262 255 247 245 243 249 255 261 268 257 246 242 
Edad 65 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
475 471 467 477 487 500 513 492 472 463 453 464 
Edad 65 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
229 227 225 229 233 240 246 236 227 222 217 222 
Edad 65 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
246 244 242 248 254 260 267 256 245 241 236 242 
Edad 66 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
464 473 483 496 509 488 468 459 450 461 473 462 
Edad 66 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
222 226 230 237 243 233 224 219 214 220 225 220 
Edad 66 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
241 247 253 259 265 255 244 240 235 241 247 242 
Edad 67 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
479 491 504 483 463 454 445 456 468 458 449 446 
Edad 67 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
227 234 240 230 221 216 211 217 222 218 213 212 
Edad 67 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
252 258 264 253 243 238 234 240 246 241 235 234 
Edad 68 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
499 478 458 449 441 452 463 453 444 442 440 411 
Edad 68 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
236 227 217 213 208 213 219 214 210 209 208 195 
Edad 68 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
262 252 241 237 233 238 244 239 234 233 232 216 
Edad 69 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
453 444 436 446 458 448 439 437 435 406 378 364 
Edad 69 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
214 209 205 210 215 211 207 206 205 192 179 172 
Edad 69 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
239 235 231 237 242 237 232 231 230 215 199 192 
Edad 70 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
430 441 452 442 433 431 429 401 373 360 346 387 
Edad 70 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
201 206 211 207 203 202 201 188 175 169 163 181 
Edad 70 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
229 235 241 235 230 229 228 213 198 191 184 206 
Edad 71 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
446 437 427 425 423 395 368 355 342 381 422 353 
Edad 71 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
208 203 199 198 197 184 172 166 160 178 196 163 
Edad 71 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
239 234 228 227 226 211 196 189 182 204 226 190 
Edad 72 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
422 419 416 389 362 349 336 375 416 348 280 299 
Edad 72 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
195 194 193 180 168 162 156 174 192 160 127 137 
Edad 72 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
227 225 224 209 194 187 180 202 224 188 152 163 
Edad 73 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
410 383 356 343 331 369 408 342 275 294 315 334 
Edad 73 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
189 176 164 158 152 169 187 156 124 133 143 151 
Edad 73 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
222 207 192 185 178 199 221 186 151 161 172 183 
Edad 74 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
350 337 324 362 401 335 269 288 308 328 348 365 
Edad 74 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
160 154 148 165 182 152 121 129 139 147 156 163 
Edad 74 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
190 183 176 197 218 184 149 159 170 180 192 202 
Edad 75 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
319 355 392 328 264 282 301 320 340 357 375 370 
Edad 75 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
144 160 177 147 117 125 134 143 151 158 165 164 
Edad 75 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
174 195 216 181 147 157 167 178 189 199 210 207 
Edad 76 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
384 321 257 275 294 313 332 348 366 361 358 357 
Edad 76 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
172 143 113 121 130 138 146 153 159 158 157 157 
Edad 76 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
213 179 144 154 164 175 186 196 207 203 201 201 
Edad 77 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
251 268 286 304 323 339 356 352 348 347 348 353 
Edad 77 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
109 117 125 133 141 147 154 152 151 151 151 152 
Edad 77 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
142 151 161 171 182 192 203 200 197 197 197 200 
Edad 78 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
279 296 314 329 346 341 337 337 337 341 347 346 
Edad 78 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
120 127 135 141 147 146 145 144 144 146 148 147 
Edad 78 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
158 168 178 188 198 195 193 192 193 196 199 199 
Edad 79 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
304 319 334 330 326 326 325 330 335 333 333 325 
Edad 79 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
130 135 141 139 138 138 137 139 141 140 140 136 
Edad 79 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
175 184 194 191 188 188 188 191 194 193 193 189 
Edad 80 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
323 318 314 313 314 318 322 321 320 312 305 306 
Edad 80 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
134 133 132 131 131 132 134 133 133 129 126 126 
Edad 80 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
189 186 183 182 183 185 189 188 187 183 179 180 
Edad 81 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
302 301 300 304 309 307 306 299 291 292 294 286 
Edad 81 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
125 124 123 125 126 126 125 122 119 118 118 114 
Edad 81 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
177 177 177 179 183 182 181 177 172 174 176 171 
Edad 82 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
287 290 294 292 292 284 277 278 279 271 264 262 
Edad 82 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
116 117 118 118 118 114 112 111 110 107 104 103 
Edad 82 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
171 173 175 175 175 170 166 167 169 164 160 159 
Edad 83 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
279 277 276 269 263 263 264 256 248 247 246 238 
Edad 83 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
111 110 109 106 104 103 102 99 96 95 94 91 
Edad 83 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
168 167 167 163 159 160 162 157 152 152 152 147 
Edad 84 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
260 253 246 246 248 240 233 231 230 222 215 215 
Edad 84 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
101 98 96 95 94 91 88 87 86 83 81 80 
Edad 84 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
159 154 150 151 154 149 145 144 144 139 135 135 
Edad 85 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
230 230 230 223 217 215 214 206 199 198 199 194 
Edad 85 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
88 87 86 83 81 80 79 76 73 72 72 70 
Edad 85 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
142 143 144 140 136 136 135 131 126 126 127 124 
Edad 86 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
212 206 199 197 197 190 183 182 182 177 174 171 
Edad 86 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
78 75 73 71 71 68 66 65 65 62 61 60 
Edad 86 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
135 131 127 126 126 122 118 117 118 115 113 111 
Edad 87 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
182 180 179 172 167 166 166 161 157 154 154 151 
Edad 87 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
65 64 63 60 59 58 57 56 54 53 52 51 
Edad 87 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
117 116 116 112 108 108 108 106 103 102 102 99 
Edad 88 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
161 155 150 148 149 145 141 139 137 134 133 131 
Edad 88 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
56 53 51 51 50 49 47 46 45 44 44 43 
Edad 88 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
106 102 98 98 99 96 94 93 92 90 88 88 
Edad 89 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
133 132 131 128 125 123 121 119 116 114 114 109 
Edad 89 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
44 44 43 42 41 40 39 38 38 37 36 35 
Edad 89 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
89 88 88 86 84 83 82 80 79 78 78 74 
Edad 90 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
115 112 108 106 106 104 102 100 98 94 91 87 
Edad 90 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
37 36 34 33 33 32 32 31 30 29 28 27 
Edad 90 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
78 76 74 73 73 71 70 69 68 65 62 61 
Edad 91 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
93 91 90 88 87 86 84 80 77 74 72 66 
Edad 91 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
29 28 27 27 27 26 25 24 23 22 20 19 
Edad 91 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
64 63 63 61 60 60 59 56 53 52 51 48 
Edad 92 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
76 74 72 71 71 68 64 62 59 55 51 51 
Edad 92 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
22 22 22 21 21 20 19 18 16 15 14 14 
Edad 92 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
54 52 51 50 51 48 46 44 43 40 37 37 
Edad 93 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
60 59 58 55 53 51 49 46 42 41 41 40 
Edad 93 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
17 17 16 16 15 14 13 12 11 11 11 10 
Edad 93 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
43 42 42 40 38 37 36 34 31 30 31 30 
Edad 94 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
47 45 42 41 40 37 34 33 33 32 31 30 
Edad 94 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
13 12 12 11 10 10  9  8  8  8  8  8 
Edad 94 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
34 33 31 30 30 27 25 25 25 24 23 23 
Edad 95 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
34 32 31 29 27 26 26 25 24 24 23 23 
Edad 95 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
 9  8  8  7  7  7  6  6  6  6  6  6 
Edad 95 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
25 24 23 22 20 20 20 19 18 18 18 18 
Edad 96 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
24 23 21 20 20 20 19 18 18 18 18 18 
Edad 96 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
 6  6  5  5  5  5  4  4  4  4  4  4 
Edad 96 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
18 17 16 15 15 15 14 14 14 13 14 14 
Edad 97 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
16 15 15 15 14 14 14 13 13 13 13 13 
Edad 97 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
 4  4  3  3  3  3  3  3  3  3  3  3 
Edad 97 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
12 12 12 11 11 11 10 10 10 10 10 10 
Edad 98 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
11 11 10 10 10 10 10 10 10  9  9  9 
Edad 98 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
 3  2  2  2  2  2  2  2  2  2  2  2 
Edad 98 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
 9  8  8  8  8  8  8  8  8  7  7  7 
Edad 99 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
 8  8  7  7  7  7  7  7  7  7  7  6 
Edad 99 años, genero Hombres
17  16  16  15  15  14  14  13  13  12  12  11  
 2  2  2  2  2  2  2  1  1  1  1  1 
Edad 99 años, genero Mujeres
17  16  16  15  15  14  14  13  13  12  12  11  
 6  6  6  6  6  6  6  5  5  5  5  5 
Edad 100 años, genero Total
17  16  16  15  15  14  14  13  13  12  12  11  
 5  5  4 


---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

 in ()
     12             print ('{:3s} '.format(str(datos_poblacion.loc[[x]]['Data'].values[0][y]['Anyo'])[2:]))
     13     for y in range(0,len(datos_poblacion.loc[[x]]['Data'].values[0])-19):
---> 14         print ('{:2.0f} '.format(datos_poblacion.loc[[x]]['Data'].values[0][y]['Valor']/1000),end='')


TypeError: unsupported operand type(s) for /: 'NoneType' and 'int'

A continuacion vamos a definir un pandas filtrando los valores correspondientes a Genero = Hombre o Mujer, ,es decir Genero diferente de Total —> !=’Total’. A partir de ahí definiremos un par de listas, una para ‘Hombres’ y otra para ‘Mujeres’, correspondientes al año 2017. Cada elemento de esas listas contendra a su vez dos campos : edad y valor (población). Me costó llegar a esa lista definida de forma comprensiva, es lo más «pythonico» que he conseguido escribir, pero seguro que hay maneras más elegantes. Posterioremente definimos un par de pandas que «merge» en uno solo que llamamos panda_poblacion. En este tendremos tres columnas : ‘Edad’, ‘Hombres’, ‘Mujeres’..y estaremos listos para dibujar las gráficas.

df1=datos_poblacion[datos_poblacion['Nombre'].apply(spliteador_genero)!='Total']
dict_poblacion=[[df1.loc[[x]]['Nombre'].apply(spliteador_genero).values[0],int(df1.loc[[x]]['Nombre'].apply(spliteador_edad).values[0]),z['Valor']]
                   for x in df1.index for z in df1.loc[[x]]['Data'].values[0] if z['Anyo']==2017]
lista_hombres=[[int(df1.loc[[x]]['Nombre'].apply(spliteador_edad).values[0]),z['Valor']] 
for x in df1.index if df1.loc[[x]]['Nombre'].apply(spliteador_genero).values[0]=='Hombres' 
for z in df1.loc[[x]]['Data'].values[0] if z['Anyo']==2017]
lista_mujeres=[[int(df1.loc[[x]]['Nombre'].apply(spliteador_edad).values[0]),z['Valor']] 
for x in df1.index if df1.loc[[x]]['Nombre'].apply(spliteador_genero).values[0]=='Mujeres' 
for z in df1.loc[[x]]['Data'].values[0] if z['Anyo']==2017]
panda_hombres=pd.DataFrame(lista_hombres,columns=['Edad','Hombres'])
panda_mujeres=pd.DataFrame(lista_mujeres,columns=['Edad','Mujeres'])
panda_poblacion=pd.merge(panda_hombres,panda_mujeres,on='Edad')

Hacemos un primer intento con una grafica clasica de lineas en la que pintamos poblacion separada de Mujeres y Hombres en función de la edad.

plt.plot(panda_poblacion['Edad'],panda_poblacion['Mujeres'],
         panda_poblacion['Edad'],panda_poblacion['Hombres'])
plt.xlim([0,105])
plt.locator_params(axis='x',nbins=25)
plt.locator_params(axis='y',nbins=10)
plt.xlabel('Edad',size=16)
plt.ylabel('Poblacion',size=16)
plt.grid()
plt.legend(['Mujeres','Hombres'])
plt.title('Distribucion poblacion por edad y sexo')
plt.savefig('distripoblacionedadsexo.png',dpi=600)

output_51_0

..y la gráfica con población total :

plt.plot(panda_poblacion['Edad'],panda_poblacion['Hombres']+panda_poblacion['Mujeres'])
plt.xlim([0,105])
plt.locator_params(axis='x',nbins=25)
plt.locator_params(axis='y',nbins=10)
plt.xlabel('Edad',size=16)
plt.ylabel('Poblacion Total',size=16)
plt.grid()
plt.xticks([0,10,20,30,40,50,60,70,80,90,100],['0','10','20','30','40','50','60','70','80','90','100'])
plt.savefig('poblaciontotal.png',dpi=600)

output_53_0

Como curiosidad saquemos la edad en la que hay mayor población :

panda_poblacion.loc[[panda_poblacion['Hombres'].idxmax()]]

.dataframe thead tr:only-child th {
text-align: right;
}

.dataframe thead th {
text-align: left;
}

.dataframe tbody tr th {
vertical-align: top;
}

Edad Hombres Mujeres
40 40 409914.0 397629.0
panda_poblacion.loc[[panda_poblacion['Mujeres'].idxmax()]]

.dataframe thead tr:only-child th {
text-align: right;
}

.dataframe thead th {
text-align: left;
}

.dataframe tbody tr th {
vertical-align: top;
}

Edad Hombres Mujeres
40 40 409914.0 397629.0

y finalmente sacamos el grafico con la Piramide de poblacion para 2017

plt.rcdefaults()
fig,ax = plt.subplots()
y_pos = panda_poblacion['Edad']
ax.barh(y_pos, panda_poblacion['Mujeres'], align='center',
        color='green', ecolor='black')
ax.barh(y_pos,-panda_poblacion['Hombres'],align='center',color='blue',ecolor='black')
ax.set_yticks(y_pos)
ax.set_xticks([-400000,-350000,-300000,-250000,-200000,-150000,-100000,-50000,0,
               50000,100000,150000,200000,250000,300000,350000,400000,])
ax.set_xticklabels(['400','350','300','250','200','150','100','50','0'
                    ,'50','100','150','200','250','300','350','400'])
#ax.invert_yaxis()  # labels read top-to-bottom
ax.set_xlabel('Población (en miles)',size=22)
ax.set_ylabel('Edad')
ax.locator_params(axis='y',nbins=25)
plt.ylim(0,105)
ax.set_title('Piramide Población España 2017',size=24)
ax.grid(True)
plt.text(150000, 95, 'Mujeres',color='green',size=20)
plt.text(-300000,95,'Hombres',color='blue',size=20)
plt.rcParams["figure.figsize"]=[12,7]
plt.savefig('piramide2017.png')
plt.show()

output_58_0

<br />
<br />

Deja una respuesta

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.