viernes, 17 de julio de 2020

Trabajos con excel con los datos del INE

Trabajos con excel con los datos del INE

https://www.ine.gob.bo/index.php/censos-salud/

Estos datos están en XLSX pero no cumplen los requisitos para ser abiertos y estandarizados

se usa la librería glob para buscar todos los archivos XLSX dentro de la carpeta seleccionada

In [1]:
import pandas as pd
import numpy as np
import glob

se declara la variable todos y se genera un for.

Lo que hace el for es iterar a todos los xlsx de la carpeta
Se usa el metodo appeand que une los archivos hacia abajo.
In [2]:
todos = []
for f in glob.glob("data/xlsx/*.xlsx"):
    pd.read_excel(f)
    todos.append(pd.read_excel(f))

Se declara una variable que en este caso concatena los datos obtenidos mas arriba. Con un index = True

In [3]:
df = pd.concat(todos, ignore_index = "True")
df
Out[3]:
Cuadro No.1 Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4 Unnamed: 5 Unnamed: 6 Unnamed: 7 Unnamed: 8 Cuadro No.3
0 BOLIVIA: HOGARES CON ACCESO A TECNOLOGÍAS DE I... NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 DESCRIPCIÓN 2.012000e+03 2013 2014 2015 2.016000e+03 2017 2018 2019(p) NaN
2 NaN NaN Total % % NaN % % % NaN
3 DISPONIBILIDAD EN INFORMACIÓN Y COMUNICACIÓN (... NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 Total 2.734429e+06 2845632 2921392 3012441 3.209250e+06 3347098 3.46486e+06 3.45374e+06 NaN
5 Telefonía fija 2.160093e+01 22.173 16.6964 15.5903 1.380843e+01 13.1356 10.8831 10.1378 NaN
6 Computadora 2.951446e+01 32.6861 27.6789 24.4248 2.604705e+01 25.8632 24.8771 27.3099 NaN
7 Internet 1.066768e+01 13.1544 14.3441 14.9037 1.548007e+01 12.4251 16.2142 22.9975 NaN
8 Televisor 8.175937e+01 81.0933 80.9101 82.7155 8.026847e+01 81.0564 81.2495 83.8754 NaN
9 Radio 6.064027e+01 59.334 55.4486 47.8464 5.077915e+01 44.97 43.9401 39.7254 NaN
10 Urbano 1.842577e+06 1912789 1959154 2036406 2.175915e+06 2231776 2.3638e+06 2.37147e+06 NaN
11 Telefonía fija 3.108109e+01 32.2358 24.5332 22.6089 2.016715e+01 19.4768 15.7538 14.631 NaN
12 Computadora 4.061882e+01 44.5997 37.5668 33.0682 3.549927e+01 35.8721 33.7835 36.4171 NaN
13 Internet 1.549042e+01 19.0505 20.5591 20.0162 2.195426e+01 18.0882 23.4723 32.8419 NaN
14 Televisor 9.524128e+01 96.0808 95.8265 95.9412 9.498312e+01 95.7365 95.4063 94.8011 NaN
15 Radio 5.670770e+01 53.6984 49.2196 40.4198 4.433188e+01 35.4894 36.5228 32.4079 NaN
16 Rural 8.918520e+05 932843 962238 976035 1.033335e+06 1115322 1.10106e+06 1.08227e+06 NaN
17 Telefonía fija 2.014796e+00 1.53917 0.740357 0.94679 4.187413e-01 0.446777 0.426571 0.292414 NaN
18 Computadora 6.572727e+00 8.25745 7.54689 6.39116 6.143313e+00 5.83544 5.75641 7.35412 NaN
19 Internet 7.038163e-01 1.06449 1.69002 4.23704 1.847223e+00 1.09314 0.632348 1.42651 NaN
20 Televisor 5.390558e+01 50.3614 50.5398 55.1212 4.928353e+01 51.6812 50.8574 59.9352 NaN
21 Radio 6.876500e+01 70.8896 68.1311 63.3414 6.435532e+01 63.9406 59.8637 55.7597 NaN
22 Fuente: INSTITUTO NACIONAL DE ESTADÍSTICA - En... NaN NaN NaN NaN NaN NaN NaN NaN NaN
23 (p) Preliminar NaN NaN NaN NaN NaN NaN NaN NaN NaN
24 NaN NaN NaN NaN NaN NaN NaN NaN NaN BOLIVIA: POBLACIÓN DE 5 AÑOS O MAS DE EDAD QUE...
25 NaN NaN NaN NaN NaN NaN NaN NaN NaN (En número y porcentaje
26 NaN 2.012000e+03 2013 2014 2015 2.016000e+03 2017 2018 2019(p) DESCRIPCIÓN
27 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
28 NaN 9.297455e+06 9.51491e+06 9.53604e+06 9.73744e+06 9.913540e+06 1.00966e+07 1.03031e+07 1.04189e+07 Total
29 NaN 6.133965e+01 69.5661 70.3945 69.8899 7.044201e+01 67.5766 69.7401 70.3801 Teléfono Celular
30 NaN 4.207786e+01 41.042 35.9629 36.8432 3.103533e+01 26.5754 29.711 29.387 computadora
31 NaN 3.550110e+01 37.0854 34.623 37.4901 3.938090e+01 36.062 44.2877 47.4748 Internet
32 NaN 6.305881e+06 6.46136e+06 6.50664e+06 6.70684e+06 6.837938e+06 6.98657e+06 7.16439e+06 7.30978e+06 Urbano
33 NaN 7.051594e+01 78.1144 78.3238 76.7879 7.806858e+01 75.2022 77.0482 77.2656 Teléfono Celular
34 NaN 5.321390e+01 52.7695 47.0421 46.1108 3.948702e+01 34.4472 37.857 38.1163 computadora
35 NaN 4.759741e+01 49.4567 46.5567 47.8839 5.124734e+01 45.8049 55.3165 58.2067 Internet
36 NaN 2.991574e+06 3.05355e+06 3.0294e+06 3.0306e+06 3.075602e+06 3.11004e+06 3.13868e+06 3.10913e+06 Rural
37 NaN 4.199712e+01 51.4779 53.3636 54.6261 5.348598e+01 50.4461 53.0595 54.192 Teléfono Celular
38 NaN 1.860442e+01 16.2264 12.1663 16.3361 1.224482e+01 8.8917 11.1178 8.86378 computadora
39 NaN 1.000353e+01 10.9076 8.9911 14.491 1.299843e+01 14.175 19.1145 22.2435 Internet
40 NaN NaN NaN NaN NaN NaN NaN NaN NaN Fuente: INSTITUTO NACIONAL DE ESTADÍSTICA - En...
41 NaN NaN NaN NaN NaN NaN NaN NaN NaN (p) Preliminar

Se graba en un archivo excel el resultado de la operación.

Ojo se debe dar nombre a la hoja del libro excel
In [4]:
grabar = pd.ExcelWriter("data/xlsx/resul.xlsx")
df.to_excel(grabar, "hija1")
grabar.save()
Share: