latam
(v0.1.2)¶En la versión 0.1.2
de latam
incluimos los atributos .df
y .subdivisiones_df
a Pais
. Estos son DataFrames de pandas
con la información del país y sus subdivisiones, respectivamente.
En esta versión también se agrega la funcionalidad de acceder al módulo paises
directamente desde latam
. Esto significa que puedes hacer
import latam
latam.paises.MEX
>>>> <Pais:México>
en lugar de
from latam import paises
paises.MEX
>>>> <Pais:México>
si así lo deseas. Ambas maneras funcionan.
import latam
latam.paises.MEX.df
abrev | alpha_2 | alpha_3 | capital | capital_horario | capital_lat | capital_long | codigo | es_independiente | es_isla | fecha_independencia | huso_horario | nombre | nombre_comun | nombre_pronunciacion_local | subdivisiones | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Mex | MX | MEX | Ciudad de México | America/Mexico_City | 19.43 | -99.13 | 484 | True | False | 1810-09-16 | [America/Tijuana, America/Hermosillo, America/... | Estados Unidos Mexicanos | México | 'me.xi.ko | [Aguascalientes, Baja California, Baja Califor... |
latam.paises.MEX.subdivisiones_df
abrev | capital | capital_horario | capital_lat | capital_long | alpha_2 | codigo_numerico | es_contigua | es_isla | fecha_de_fundacion | huso_horario | nombre | nombre_comun | nombre_pronunciacion_local | nombres_nativos | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | AGS | Ciudad de Aguascalientes | America/Mexico_City | 21.88 | -102.29 | AGU | 1 | True | False | 1857-02-05 | America/Mexico_City | Aguascalientes | Aguascalientes | a.ɣ̞was.ka'.ljen̟.tes | |
1 | BC | Mexicali | America/Tijuana | 32.67 | -115.47 | BCN | 2 | True | False | 1952-01-16 | America/Tijuana | Baja California | Baja California | 'ba.xa. ka.li'.for.nja | |
2 | BCS | La Paz | America/Hermosillo | 24.14 | -110.31 | BCS | 3 | True | False | 1974-10-08 | America/Hermosillo | Baja California Sur | Baja California Sur | 'ba.xa. ka.li'.for.nja 'sur | |
3 | CAM | San Francisco de Campeche | America/Mexico_City | 19.85 | -90.53 | CAM | 4 | True | False | 1863-04-29 | America/Mexico_City | Campeche | Campeche | kam'pe.tʃe | |
4 | CHIS | Tuxtla Gutiérrez | America/Mexico_City | 16.75 | -93.12 | CHP | 7 | True | False | 1824-09-14 | America/Mexico_City | Chiapas | Chiapas | tʃjap'.as | |
5 | CHIH | Chihuahua | America/Chihuahua | 28.64 | -106.09 | CHH | 8 | True | False | 1824-07-06 | America/Chihuahua | Chihuahua | Chihuahua | tʃi'.wa.wa | |
6 | COAH | Saltillo | America/Chihuahua | 25.43 | -101.00 | COA | 5 | True | False | 1824-05-07 | America/Chihuahua | Coahuila de Zaragoza | Coahuila | koa'.wj.la ðe θa.ra'.ɣ̞o.θa | |
7 | COL | Colima | America/Mexico_City | 19.24 | -103.73 | COL | 6 | True | False | 1856-12-09 | America/Mexico_City | Colima | Colima | ko'.li.ma | |
8 | DUR | Victoria de Durango | America/Mexico_City | 24.02 | -104.67 | DUR | 10 | True | False | 1824-05-22 | America/Mexico_City | Durango | Durango | du'.ɾaŋ.ɡo | Korian (Tepehuán),Tepēhuahcān (Náhuatl) |
9 | GTO | Guanajuato | America/Mexico_City | 21.02 | -101.26 | GUA | 11 | True | False | 1823-12-20 | America/Mexico_City | Guanajuato | Guanajuato | gwa.na'.xwa.to | kuanhasï juáta (Purépecha) |
10 | HGO | Pachuca de Soto | America/Mexico_City | 20.12 | -98.74 | HGO | 13 | True | False | 1869-01-16 | America/Mexico_City | Hidalgo | Hidalgo | i'.ðal.ɣo | |
11 | JAL | Guadalajara | America/Mexico_City | 20.67 | -103.35 | JAL | 14 | True | False | 1823-12-23 | America/Mexico_City | Jalisco | Jalisco | xa'.lis.ko | Tlahtohcayotl Xalixco (Náhuatl) |
12 | EdoMex | Toluca de Lerdo | America/Mexico_City | 19.29 | -99.66 | MEX | 15 | True | False | 1823-12-20 | America/Mexico_City | Estado de México | Estado de México | es'.ta.ðo ðe 'me.xi.ko | Mēxihco (Náhuatl) |
13 | CDMX | Ciudad de México | America/Mexico_City | 19.43 | -99.13 | CMX | 9 | True | False | 2016-01-29 | America/Mexico_City | Ciudad de México | Ciudad de México | sju'.ða(ð) ðe 'me.xi.ko | Āltepētl Mēxihco (Náhuatl) |
14 | MICH | Morelia | America/Mexico_City | 19.77 | -101.19 | MIC | 16 | True | False | 1823-12-22 | America/Mexico_City | Michoacán de Ocampo | Michoacán | mi.tʃoa'.kan de o'.kam.po | Michhuahcān (Náhuatl) |
15 | MOR | Cuernavaca | America/Mexico_City | 18.92 | -99.23 | MOR | 17 | True | False | 1869-04-17 | America/Mexico_City | Morelos | Morelos | mo'.ɾe.los | |
16 | NAY | Tepic | America/Hermosillo | 21.51 | -104.89 | NAY | 18 | True | False | 1917-01-26 | America/Hermosillo | Nayarit | Nayarit | na.ʝa'.ɾit | |
17 | NL | Monterrey | America/Mexico_City | 25.67 | -100.30 | NLE | 19 | True | False | 1824-05-17 | America/Mexico_City | Nuevo León | Nuevo León | 'nwe.βo le.'on | |
18 | OAX | Oaxaca de Juárez | America/Mexico_City | 7.08 | -96.75 | OAX | 20 | True | False | 1823-12-21 | America/Mexico_City | Oaxaca | Oaxaca | wa'.xa.ka | Huāxyacac (Nahuatl) |
19 | PUE | Heroica Puebla de Zaragoza | America/Mexico_City | 19.03 | -98.18 | PUE | 21 | True | False | 1823-12-21 | America/Mexico_City | Puebla | Puebla | 'pwe.βla | Cuetlaxcoapan (Nahuatl) |
20 | QRO | Santiago de Queretaro | America/Mexico_City | 20.59 | -100.39 | QUE | 22 | True | False | 1823-12-23 | America/Mexico_City | Querétaro de Arteaga | Queretaro | ke'.ɾe.ta.ɾo | Hyodi Ndämxei (Otomí) |
21 | QR | Chetumal | America/Cancun | 18.50 | -88.31 | ROO | 23 | True | False | 1974-10-08 | America/Cancun | Quintana Roo | Queretaro | kin'.ta.na 'roo | |
22 | SLP | San Luis Potosí | America/Mexico_City | 22.15 | -100.99 | SLP | 24 | True | False | 1823-12-22 | America/Mexico_City | San Luis Potosí | San Luis Potosí | san 'lwis po.to.'si | |
23 | SNL | Culiacán Rosales | America/Hermosillo | 24.81 | -107.39 | SIN | 25 | True | False | 1830-10-14 | America/Hermosillo | Sinaloa | Sinaloa | si.na'.loa | |
24 | SON | Hermosillo | America/Hermosillo | 29.09 | -110.95 | SON | 26 | True | False | 1824-01-10 | America/Hermosillo | Sonora | Sonora | so'.no.ɾa | |
25 | TAB | Villahermosa | America/Mexico_City | 17.99 | -92.93 | TAB | 27 | True | False | 1824-02-07 | America/Mexico_City | Tabasco | Tabasco | ta.'βas.ko | |
26 | TAMPS | Ciudad Victoria | America/Mexico_City | 23.73 | -99.13 | TAM | 28 | True | False | 1824-02-07 | America/Mexico_City | Tamaulipas | Tamaulipas | ta.maw'.li.pas | |
27 | TLAX | Tlaxcala de Xicohténcat | America/Mexico_City | 19.31 | -98.24 | TLA | 29 | True | False | 1856-12-09 | America/Mexico_City | Tlaxcala | Tlaxcala | tla(k)s'.ka.la | Tlaxcallān (Nahuatl) |
28 | VER | Xalapa-Enríquez | America/Mexico_City | 19.54 | -96.93 | VER | 30 | True | False | 1823-12-22 | America/Mexico_City | Veracruz de Ignacio de la Llave | Veracruz | be.ɾa'.kɾus | |
29 | YUC | Merida | America/Mexico_City | 20.97 | -89.62 | YUC | 31 | True | False | 1823-12-23 | America/Mexico_City | Yucatán | Yucatán | ɟʝu.ka.'tan | |
30 | ZAC | Zacatecas | America/Mexico_City | 22.77 | -102.57 | ZAC | 32 | True | False | 1823-12-23 | America/Mexico_City | Zacatecas | Zacatecas | sa.ka.'te.kas |
Aquí puedes ver todos los atributos de cada Subdivision
del Pais
México.
Cada Subdivision
tiene el atributo .codigo
y .codigo_numerico
(las columnas alpha_2
y codigo_numerico
, respectivamente). El código (o alpha_2
esta basado en la norma ISO-3611-2 para las subdivisiones y ISO-3611-1 para los paises. Esto significa que puedes utilizar este DataFrame para mezclar, filtrar, manipular otros datos de fuentes oficiales o que utilizen la norma. Por ejemplo,
import geopandas as gpd
datos_geopandas = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
datos_geopandas.plot()
<AxesSubplot:>
mask_paises_en_mis_datos = datos_geopandas['iso_a3'].isin(latam.paises.MEX.df['alpha_3'])
datos_geopandas[mask_paises_en_mis_datos].plot()
<AxesSubplot:>
Ah, como amo IPUMS. IPUMS originalmente era un acrónimo de Integrated Public Use Microdata Series y era un proyecto de la universidad de Minesota que homologa datos del censo para integrarlos en un conjunto de datos facil de usar. Este proyecto se expandio a crear otras ramas como IPUMS-International (internacional, en inglés :p) el cual homologa datos censales de muchos paises y también ofrecen datos geográficos. Puedes visitar su página en https://international.ipums.org.
from zipfile import ZipFile
!wget https://international.ipums.org/international/resources/gis/world_geolev1_2019.zip
--2020-10-15 16:42:47-- https://international.ipums.org/international/resources/gis/world_geolev1_2019.zip Resolving international.ipums.org (international.ipums.org)... 128.101.163.164 Connecting to international.ipums.org (international.ipums.org)|128.101.163.164|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 235596678 (225M) [application/zip] Saving to: ‘world_geolev1_2019.zip’ world_geolev1_2019. 100%[===================>] 224.68M 6.80MB/s in 35s 2020-10-15 16:43:23 (6.36 MB/s) - ‘world_geolev1_2019.zip’ saved [235596678/235596678]
ZipFile("./world_geolev1_2019.zip").extractall()
mundo = gpd.read_file("world_geolev1_2019.shp")
mundo.plot()
<AxesSubplot:>
Aquí puedes ver con mas detalle que datos incluye. Cada fila de este geodataframe es una poligono para una subdivisión. La entidad subnacional del país. En México son estados en otros países pueden conocerse como distritos, provincias, territorios, etc.
mundo.sample(5)
CNTRY_NAME | ADMIN_NAME | CNTRY_CODE | GEOLEVEL1 | BPL_CODE | geometry | |
---|---|---|---|---|---|---|
1219 | Philippines | Nueva Ecija | 608 | 608049 | 33080.0 | POLYGON ((121.28172 15.77052, 121.28737 15.753... |
289 | Cook Is. | None | 184 | None | 54010.0 | MULTIPOLYGON (((-157.91502 -21.87544, -157.914... |
742 | Ireland | Border | 372 | 372001 | 42060.0 | MULTIPOLYGON (((-6.09756 54.01247, -6.10008 54... |
1778 | Uganda | Gulu | 800 | 800304 | 11160.0 | POLYGON ((32.19866 3.50607, 32.19864 3.50599, ... |
112 | Brazil | Alagoas | 076 | 076027 | 23030.0 | MULTIPOLYGON (((-36.42128 -10.47667, -36.42170... |
Si ves la documentación el CNTRY_CODE
es el código numérico de cada país (basado en ISO-3611-1) y el GEOLEVEL1
es el ISO-3611-2. Así que podemos utilizar latam
para obtener solo los polígonos de nuestro país.
mask_mexico = mundo['CNTRY_CODE'].isin(latam.paises.MEX.df['codigo'])
mundo[mask_mexico]
CNTRY_NAME | ADMIN_NAME | CNTRY_CODE | GEOLEVEL1 | BPL_CODE | geometry | |
---|---|---|---|---|---|---|
924 | Mexico | Aguascalientes | 484 | 484001 | 22060.0 | POLYGON ((-102.28777 22.41637, -102.28753 22.4... |
925 | Mexico | Baja California | 484 | 484002 | 22060.0 | MULTIPOLYGON (((-114.13834 28.00211, -114.1383... |
926 | Mexico | Baja California Sur | 484 | 484003 | 22060.0 | MULTIPOLYGON (((-109.80419 22.94320, -109.8058... |
927 | Mexico | Campeche | 484 | 484004 | 22060.0 | MULTIPOLYGON (((-92.01303 18.54842, -92.01405 ... |
928 | Mexico | Coahuila de Zaragoza | 484 | 484005 | 22060.0 | POLYGON ((-102.31415 29.87936, -102.31353 29.8... |
929 | Mexico | Colima | 484 | 484006 | 22060.0 | MULTIPOLYGON (((-114.76717 18.37683, -114.7638... |
930 | Mexico | Chiapas | 484 | 484007 | 22060.0 | POLYGON ((-91.97364 17.91143, -91.96993 17.910... |
931 | Mexico | Chihuahua | 484 | 484008 | 22060.0 | POLYGON ((-106.51767 31.77173, -106.51712 31.7... |
932 | Mexico | Distrito Federal | 484 | 484009 | 22060.0 | POLYGON ((-99.11124 19.56150, -99.11421 19.558... |
933 | Mexico | Durango | 484 | 484010 | 22060.0 | POLYGON ((-105.96732 26.78554, -105.93919 26.7... |
934 | Mexico | Guanajuato | 484 | 484011 | 22060.0 | POLYGON ((-101.35003 21.83796, -101.34216 21.8... |
935 | Mexico | Guerrero | 484 | 484012 | 22060.0 | MULTIPOLYGON (((-99.59839 16.69250, -99.59914 ... |
936 | Mexico | Hidalgo | 484 | 484013 | 22060.0 | POLYGON ((-98.48311 21.39730, -98.48276 21.397... |
937 | Mexico | Jalisco | 484 | 484014 | 22060.0 | MULTIPOLYGON (((-104.70081 19.17875, -104.7020... |
938 | Mexico | México | 484 | 484015 | 22060.0 | POLYGON ((-99.91237 20.28563, -99.91180 20.285... |
939 | Mexico | Michoacán de Ocampo | 484 | 484016 | 22060.0 | MULTIPOLYGON (((-102.65334 18.05325, -102.6548... |
940 | Mexico | Morelos | 484 | 484017 | 22060.0 | POLYGON ((-99.06209 19.04872, -99.05980 19.048... |
941 | Mexico | Nayarit | 484 | 484018 | 22060.0 | MULTIPOLYGON (((-105.27633 20.67199, -105.2767... |
942 | Mexico | Nuevo León | 484 | 484019 | 22060.0 | POLYGON ((-100.00248 27.61896, -99.99884 27.61... |
943 | Mexico | Oaxaca | 484 | 484020 | 22060.0 | MULTIPOLYGON (((-96.23689 15.66303, -96.24039 ... |
944 | Mexico | Puebla | 484 | 484021 | 22060.0 | POLYGON ((-97.84200 20.83978, -97.84169 20.839... |
945 | Mexico | Querétaro | 484 | 484022 | 22060.0 | POLYGON ((-99.18811 21.66992, -99.18362 21.663... |
946 | Mexico | Quintana Roo | 484 | 484023 | 22060.0 | MULTIPOLYGON (((-87.87347 18.20982, -87.87228 ... |
947 | Mexico | San Luis Potosí | 484 | 484024 | 22060.0 | POLYGON ((-100.60353 24.40130, -100.60061 24.3... |
948 | Mexico | Sinaloa | 484 | 484025 | 22060.0 | MULTIPOLYGON (((-105.71964 22.48597, -105.7176... |
949 | Mexico | Sonora | 484 | 484026 | 22060.0 | MULTIPOLYGON (((-109.12524 26.29701, -109.1255... |
950 | Mexico | Tabasco | 484 | 484027 | 22060.0 | MULTIPOLYGON (((-91.43963 17.25097, -91.43970 ... |
951 | Mexico | Tamaulipas | 484 | 484028 | 22060.0 | MULTIPOLYGON (((-97.86506 22.61797, -97.86606 ... |
952 | Mexico | Tlaxcala | 484 | 484029 | 22060.0 | POLYGON ((-98.05499 19.72180, -98.05458 19.721... |
953 | Mexico | Veracruz de Ignacio de la Llave | 484 | 484030 | 22060.0 | MULTIPOLYGON (((-94.41850 18.11239, -94.41986 ... |
954 | Mexico | Yucatán | 484 | 484031 | 22060.0 | MULTIPOLYGON (((-91.96430 20.20331, -91.96753 ... |
955 | Mexico | Zacatecas | 484 | 484032 | 22060.0 | POLYGON ((-101.84536 25.00835, -101.84131 24.9... |
Y como pueden ver el GEOLEVEL1
es una combinación de 6 dígitos. Los primeros 3 son el código del país y los últimos 3 son de la subdivisión. Se tienen que ser 6 caracteres así que si el código de tu subdivisión es 1 tienes que cambiarlo a 001.
estados_mx = latam.paises.MEX.subdivisiones_df.copy()
estados_mx['codigo_numerico'] = estados_mx['codigo_numerico'].astype(str).str.zfill(3)
estados_mx.head()
abrev | capital | capital_horario | capital_lat | capital_long | alpha_2 | codigo_numerico | es_contigua | es_isla | fecha_de_fundacion | huso_horario | nombre | nombre_comun | nombre_pronunciacion_local | nombres_nativos | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | AGS | Ciudad de Aguascalientes | America/Mexico_City | 21.88 | -102.29 | AGU | 001 | True | False | 1857-02-05 | America/Mexico_City | Aguascalientes | Aguascalientes | a.ɣ̞was.ka'.ljen̟.tes | |
1 | BC | Mexicali | America/Tijuana | 32.67 | -115.47 | BCN | 002 | True | False | 1952-01-16 | America/Tijuana | Baja California | Baja California | 'ba.xa. ka.li'.for.nja | |
2 | BCS | La Paz | America/Hermosillo | 24.14 | -110.31 | BCS | 003 | True | False | 1974-10-08 | America/Hermosillo | Baja California Sur | Baja California Sur | 'ba.xa. ka.li'.for.nja 'sur | |
3 | CAM | San Francisco de Campeche | America/Mexico_City | 19.85 | -90.53 | CAM | 004 | True | False | 1863-04-29 | America/Mexico_City | Campeche | Campeche | kam'pe.tʃe | |
4 | CHIS | Tuxtla Gutiérrez | America/Mexico_City | 16.75 | -93.12 | CHP | 007 | True | False | 1824-09-14 | America/Mexico_City | Chiapas | Chiapas | tʃjap'.as |
estados_mx['GEOLEVEL1'] = "484" + estados_mx['codigo_numerico']
estados_mx.head()
abrev | capital | capital_horario | capital_lat | capital_long | alpha_2 | codigo_numerico | es_contigua | es_isla | fecha_de_fundacion | huso_horario | nombre | nombre_comun | nombre_pronunciacion_local | nombres_nativos | GEOLEVEL1 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | AGS | Ciudad de Aguascalientes | America/Mexico_City | 21.88 | -102.29 | AGU | 001 | True | False | 1857-02-05 | America/Mexico_City | Aguascalientes | Aguascalientes | a.ɣ̞was.ka'.ljen̟.tes | 484001 | |
1 | BC | Mexicali | America/Tijuana | 32.67 | -115.47 | BCN | 002 | True | False | 1952-01-16 | America/Tijuana | Baja California | Baja California | 'ba.xa. ka.li'.for.nja | 484002 | |
2 | BCS | La Paz | America/Hermosillo | 24.14 | -110.31 | BCS | 003 | True | False | 1974-10-08 | America/Hermosillo | Baja California Sur | Baja California Sur | 'ba.xa. ka.li'.for.nja 'sur | 484003 | |
3 | CAM | San Francisco de Campeche | America/Mexico_City | 19.85 | -90.53 | CAM | 004 | True | False | 1863-04-29 | America/Mexico_City | Campeche | Campeche | kam'pe.tʃe | 484004 | |
4 | CHIS | Tuxtla Gutiérrez | America/Mexico_City | 16.75 | -93.12 | CHP | 007 | True | False | 1824-09-14 | America/Mexico_City | Chiapas | Chiapas | tʃjap'.as | 484007 |
mexico_geo = mundo[mask_mexico]
estados_mx_geo = gpd.GeoDataFrame(estados_mx.merge(mexico_geo[['GEOLEVEL1', 'geometry']], on = "GEOLEVEL1", how='left'))
estados_mx_geo.plot();
import altair as alt
estados_mx_geo_slim = estados_mx_geo[['nombre', 'fecha_de_fundacion', 'geometry']].copy()
estados_mx_geo_slim['fecha_de_fundacion'] = estados_mx_geo_slim['fecha_de_fundacion'].astype(str)
alt.Chart(estados_mx_geo_slim).mark_geoshape().encode(
tooltip = alt.Tooltip(['nombre', 'fecha_de_fundacion'])
).properties(
width = 700,
)