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)
..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)
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()
<br />
<br />