In [ ]:
import os
import geopandas as gpd
import pandas as pd
from google.colab import drive
from IPython.display import display
!pip install fiona
Requirement already satisfied: fiona in /usr/local/lib/python3.11/dist-packages (1.10.1) Requirement already satisfied: attrs>=19.2.0 in /usr/local/lib/python3.11/dist-packages (from fiona) (25.3.0) Requirement already satisfied: certifi in /usr/local/lib/python3.11/dist-packages (from fiona) (2025.6.15) Requirement already satisfied: click~=8.0 in /usr/local/lib/python3.11/dist-packages (from fiona) (8.2.1) Requirement already satisfied: click-plugins>=1.0 in /usr/local/lib/python3.11/dist-packages (from fiona) (1.1.1.2) Requirement already satisfied: cligj>=0.5 in /usr/local/lib/python3.11/dist-packages (from fiona) (0.7.2)
In [ ]:
from fiona import listlayers
drive.mount('/content/drive')
link_world_map = "/content/drive/My Drive/SHAPEFILE/MAPA6362.gpkg"
listlayers(link_world_map)
Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).
Out[ ]:
['México', 'Estados de México', 'Municipios de México', 'Ríos de México', 'Estados_de_México', 'Municipalidades_de_México', 'aeropuerto', 'Aereopuertos de Mexico', 'aaeropuertointento']
In [ ]:
mexico_municipalities=gpd.read_file(link_world_map,layer='Municipalidades_de_México')
In [ ]:
mexico_municipalities.info()
<class 'geopandas.geodataframe.GeoDataFrame'> RangeIndex: 2475 entries, 0 to 2474 Data columns (total 10 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 CVEGEO 2475 non-null object 1 CVE_ENT 2475 non-null object 2 CVE_MUN 2475 non-null object 3 NOMGEO 2475 non-null object 4 NOM_ENT 2475 non-null object 5 COV_ 2475 non-null int64 6 COV_ID 2475 non-null int64 7 AREA 2475 non-null float64 8 PERIMETER 2475 non-null float64 9 geometry 2475 non-null geometry dtypes: float64(2), geometry(1), int64(2), object(5) memory usage: 193.5+ KB
In [ ]:
mexico_municipalities
Out[ ]:
CVEGEO | CVE_ENT | CVE_MUN | NOMGEO | NOM_ENT | COV_ | COV_ID | AREA | PERIMETER | geometry | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 01008 | 01 | 008 | San José de Gracia | Aguascalientes | 0 | 1 | 857.790574 | 181.537599 | MULTIPOLYGON (((2453326.553 1143576.423, 24533... |
1 | 01009 | 01 | 009 | Tepezalá | Aguascalientes | 1 | 2 | 229.661012 | 89.329532 | MULTIPOLYGON (((2481826.447 1149055.253, 24815... |
2 | 01007 | 01 | 007 | Rincón de Romos | Aguascalientes | 2 | 3 | 372.295163 | 161.749880 | MULTIPOLYGON (((2476760.231 1150329.045, 24767... |
3 | 01006 | 01 | 006 | Pabellón de Arteaga | Aguascalientes | 3 | 4 | 195.735946 | 105.612997 | MULTIPOLYGON (((2473996.656 1129304.114, 24742... |
4 | 01005 | 01 | 005 | Jesús MarÃa | Aguascalientes | 4 | 5 | 499.895092 | 163.500811 | MULTIPOLYGON (((2463657.764 1116053.82, 246373... |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2470 | 32029 | 32 | 029 | Miguel Auza | Zacatecas | 2470 | 2471 | 1093.921188 | 183.913765 | MULTIPOLYGON (((2355465.893 1369546.77, 235554... |
2471 | 32028 | 32 | 028 | Mezquital del Oro | Zacatecas | 2471 | 2472 | 482.008504 | 146.234897 | MULTIPOLYGON (((2367118.716 1037654.815, 23671... |
2472 | 32011 | 32 | 011 | Trinidad GarcÃa de la Cadena | Zacatecas | 2472 | 2473 | 304.265670 | 105.480166 | MULTIPOLYGON (((2351804.877 1035949.877, 23518... |
2473 | 32027 | 32 | 027 | Melchor Ocampo | Zacatecas | 2473 | 2474 | 1862.048602 | 247.933775 | MULTIPOLYGON (((2470352.986 1453426.983, 24732... |
2474 | 32024 | 32 | 024 | Loreto | Zacatecas | 2474 | 2475 | 424.658188 | 136.687153 | MULTIPOLYGON (((2487234.035 1151121.912, 24873... |
2475 rows × 10 columns
In [ ]:
link_cvs='/content/drive/MyDrive/SHAPEFILE/municipios_poblacion.csv'
poblacion2010=pd.read_csv(link_cvs, encoding='latin1')
In [ ]:
poblacion2010.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 2456 entries, 0 to 2455 Data columns (total 4 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 EntidadID 2456 non-null int64 1 MunicipioID 2456 non-null int64 2 Municipio 2456 non-null object 3 Poblacion 2456 non-null int64 dtypes: int64(3), object(1) memory usage: 76.9+ KB
In [ ]:
poblacion2010
Out[ ]:
EntidadID | MunicipioID | Municipio | Poblacion | |
---|---|---|---|---|
0 | 1 | 1 | Aguascalientes | 797010 |
1 | 1 | 2 | Asientos | 45492 |
2 | 1 | 3 | Calvillo | 54136 |
3 | 1 | 4 | Cosío | 15042 |
4 | 1 | 5 | Jesús María | 99590 |
... | ... | ... | ... | ... |
2451 | 32 | 54 | Villa Hidalgo | 18490 |
2452 | 32 | 55 | Villanueva | 29395 |
2453 | 32 | 56 | Zacatecas | 138176 |
2454 | 32 | 57 | Trancoso | 16934 |
2455 | 32 | 58 | Santa María de la Paz | 2821 |
2456 rows × 4 columns
In [ ]:
mexico_municipalities.merge(poblacion2010,left_on='NOMGEO',right_on='Municipio')
#vemos que se pierden datos
Out[ ]:
CVEGEO | CVE_ENT | CVE_MUN | NOMGEO | NOM_ENT | COV_ | COV_ID | AREA | PERIMETER | geometry | EntidadID | MunicipioID | Municipio | Poblacion | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 01003 | 01 | 003 | Calvillo | Aguascalientes | 6 | 7 | 923.357832 | 171.636168 | MULTIPOLYGON (((2429646.495 1120918.059, 24297... | 1 | 3 | Calvillo | 54136 |
1 | 01002 | 01 | 002 | Asientos | Aguascalientes | 7 | 8 | 543.374266 | 192.096428 | MULTIPOLYGON (((2493552.647 1142361.087, 24935... | 1 | 2 | Asientos | 45492 |
2 | 01001 | 01 | 001 | Aguascalientes | Aguascalientes | 8 | 9 | 1166.359247 | 256.631026 | MULTIPOLYGON (((2486536.885 1117403.247, 24872... | 1 | 1 | Aguascalientes | 797010 |
3 | 01010 | 01 | 010 | El Llano | Aguascalientes | 9 | 10 | 504.050989 | 144.866490 | MULTIPOLYGON (((2496481.299 1116760.454, 24966... | 1 | 10 | El Llano | 18828 |
4 | 01011 | 01 | 011 | San Francisco de los Romo | Aguascalientes | 10 | 11 | 137.770177 | 103.689066 | MULTIPOLYGON (((2483638.349 1120034.022, 24839... | 1 | 11 | San Francisco de los Romo | 35769 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
1886 | 32027 | 32 | 027 | Melchor Ocampo | Zacatecas | 2473 | 2474 | 1862.048602 | 247.933775 | MULTIPOLYGON (((2470352.986 1453426.983, 24732... | 15 | 53 | Melchor Ocampo | 50240 |
1887 | 32027 | 32 | 027 | Melchor Ocampo | Zacatecas | 2473 | 2474 | 1862.048602 | 247.933775 | MULTIPOLYGON (((2470352.986 1453426.983, 24732... | 19 | 35 | Melchor Ocampo | 862 |
1888 | 32027 | 32 | 027 | Melchor Ocampo | Zacatecas | 2473 | 2474 | 1862.048602 | 247.933775 | MULTIPOLYGON (((2470352.986 1453426.983, 24732... | 32 | 27 | Melchor Ocampo | 2662 |
1889 | 32024 | 32 | 024 | Loreto | Zacatecas | 2474 | 2475 | 424.658188 | 136.687153 | MULTIPOLYGON (((2487234.035 1151121.912, 24873... | 3 | 9 | Loreto | 16738 |
1890 | 32024 | 32 | 024 | Loreto | Zacatecas | 2474 | 2475 | 424.658188 | 136.687153 | MULTIPOLYGON (((2487234.035 1151121.912, 24873... | 32 | 24 | Loreto | 48365 |
1891 rows × 14 columns
In [ ]:
solomunicipalidades=set(mexico_municipalities.NOMGEO)-set(poblacion2010.Municipio)
solopoblacion=set(poblacion2010.Municipio)-set(mexico_municipalities.NOMGEO)
In [ ]:
!pip install thefuzz
Requirement already satisfied: thefuzz in /usr/local/lib/python3.11/dist-packages (0.22.1) Requirement already satisfied: rapidfuzz<4.0.0,>=3.0.0 in /usr/local/lib/python3.11/dist-packages (from thefuzz) (3.13.0)
In [ ]:
from thefuzz import process as fz
[(c,fz.extractOne(c,solomunicipalidades)) for c in sorted(solopoblacion)] #estos son los datos que podemos recuperar
Out[ ]:
[('Abalá', ('Abalá', 100)), ('Acambay', ('Acambay de RuÃ\xadz Castañeda', 90)), ('Acapulco de Juárez', ('Acapulco de Juárez', 100)), ('Acatlán', ('Acatlán', 100)), ('Acatlán de Juárez', ('Acatlán de Juárez', 100)), ('Acatlán de Pérez Figueroa', ('Acatlán de Pérez Figueroa', 100)), ('Acaxochitlán', ('Acaxochitlán', 100)), ('Acuña', ('Acuña', 100)), ('Acámbaro', ('Acámbaro', 100)), ('Ahuacatlán', ('Ahuacatlán', 100)), ('Ahualulco', ('Ahualulco del Sonido 13', 90)), ('Ahuatlán', ('Ahuatlán', 100)), ('Ajuchitlán del Progreso', ('Ajuchitlán del Progreso', 100)), ('Alamos', ('Ã\x81lamos', 91)), ('Almoloya de Juárez', ('Almoloya de Juárez', 100)), ('Almoloya del Río', ('Almoloya del RÃ\xado', 100)), ('Alpatláhuac', ('Alpatláhuac', 100)), ('Alto Lucero de Gutiérrez Barrios', ('Alto Lucero de Gutiérrez Barrios', 100)), ('Amatitlán', ('Amatitlán', 100)), ('Amatitán', ('Amatitán', 100)), ('Amatlán de Cañas', ('Amatlán de Cañas', 100)), ('Amatlán de los Reyes', ('Amatlán de los Reyes', 100)), ('Amatán', ('Amatán', 100)), ('Amixtlán', ('Amixtlán', 100)), ('Angel Albino Corzo', ('Ã\x81ngel Albino Corzo', 97)), ('Anáhuac', ('Anáhuac', 100)), ('Apatzingán', ('Apatzingán', 100)), ('Apetatitlán de Antonio Carvajal', ('Apetatitlán de Antonio Carvajal', 100)), ('Aquiles Serdán', ('Aquiles Serdán', 100)), ('Aquismón', ('Aquismón', 100)), ('Armería', ('ArmerÃ\xada', 100)), ('Ascensión', ('Ascensión', 100)), ('Asunción Cacalotepec', ('Asunción Cacalotepec', 100)), ('Asunción Cuyotepeji', ('Asunción Cuyotepeji', 100)), ('Asunción Ixtaltepec', ('Asunción Ixtaltepec', 100)), ('Asunción Nochixtlán', ('Asunción Nochixtlán', 100)), ('Asunción Ocotlán', ('Asunción Ocotlán', 100)), ('Asunción Tlacolulita', ('Asunción Tlacolulita', 100)), ('Atenango del Río', ('Atenango del RÃ\xado', 100)), ('Atizapán', ('Atizapán', 100)), ('Atizapán de Zaragoza', ('Atizapán de Zaragoza', 100)), ('Atoyac de Álvarez', ('Atoyac de Ã\x81lvarez', 100)), ('Atzitzihuacán', ('Atzitzihuacán', 100)), ('Autlán de Navarro', ('Autlán de Navarro', 100)), ('Ayotlán', ('Ayotlán', 100)), ('Azoyú', ('Azoyú', 100)), ('Bacadéhuachi', ('Bacadéhuachi', 100)), ('Bachíniva', ('BachÃ\xadniva', 100)), ('Bahía de Banderas', ('BahÃ\xada de Banderas', 100)), ('Balancán', ('Balancán', 100)), ('Banámichi', ('Banámichi', 100)), ('Batopilas', ('Batopilas de Manuel Gómez MorÃ\xadn', 90)), ('Baviácora', ('Baviácora', 100)), ('Benemérito de las Américas', ('Benemérito de las Américas', 100)), ('Benito Juárez', ('Benito Juárez', 100)), ('Benjamín Hill', ('BenjamÃ\xadn Hill', 100)), ('Berriozábal', ('Berriozábal', 100)), ('Boca del Río', ('Boca del RÃ\xado', 100)), ('Bokobá', ('Bokobá', 100)), ('Bolaños', ('Bolaños', 100)), ('Briseñas', ('Briseñas', 100)), ('Buenavista de Cuéllar', ('Buenavista de Cuéllar', 100)), ('Bácum', ('Bácum', 100)), ('Cacahoatán', ('Cacahoatán', 100)), ('Cacalchén', ('Cacalchén', 100)), ('Cadereyta Jiménez', ('Cadereyta Jiménez', 100)), ('Calihualá', ('Calihualá', 100)), ('Calkiní', ('CalkinÃ\xad', 100)), ('Camarón de Tejeda', ('Camarón de Tejeda', 100)), ('Canatlán', ('Canatlán', 100)), ('Capulálpam de Méndez', ('Capulálpam de Méndez', 100)), ('Carbó', ('Carbó', 100)), ('Carichí', ('CarichÃ\xad', 100)), ('Carácuaro', ('Carácuaro', 100)), ('Castaños', ('Castaños', 100)), ('Catazajá', ('Catazajá', 100)), ('Cañada Morelos', ('Cañada Morelos', 100)), ('Cañadas de Obregón', ('Cañadas de Obregón', 100)), ('Cañitas de Felipe Pescador', ('Cañitas de Felipe Pescador', 100)), ('Celestún', ('Celestún', 100)), ('Chacsinkín', ('ChacsinkÃ\xadn', 100)), ('Chalchihuitán', ('Chalchihuitán', 100)), ('Champotón', ('Champotón', 100)), ('Chapulhuacán', ('Chapulhuacán', 100)), ('Chenalhó', ('Chenalhó', 100)), ('Cherán', ('Cherán', 100)), ('Chichimilá', ('Chichimilá', 100)), ('Chicoasén', ('Chicoasén', 100)), ('Chigmecatitlán', ('Chigmecatitlán', 100)), ('Chilapa de Álvarez', ('Chilapa de Ã\x81lvarez', 100)), ('Chilón', ('Chilón', 100)), ('Chimalhuacán', ('Chimalhuacán', 100)), ('Chimaltitán', ('Chimaltitán', 100)), ('Chiquihuitlán de Benito Juárez', ('Chiquihuitlán de Benito Juárez', 100)), ('Chiquilistlán', ('Chiquilistlán', 100)), ('Chocamán', ('Chocamán', 100)), ('Chocholá', ('Chocholá', 100)), ('Chucándiro', ('Chucándiro', 100)), ('Chumatlán', ('Chumatlán', 100)), ('Chínipas', ('ChÃ\xadnipas', 100)), ('Cihuatlán', ('Cihuatlán', 100)), ('Cintalapa', ('Cintalapa de Figueroa', 90)), ('Citlaltépetl', ('Citlaltépetl', 100)), ('Ciudad Fernández', ('Ciudad Fernández', 100)), ('Ciudad del Maíz', ('Ciudad del MaÃ\xadz', 100)), ('Ciénega de Flores', ('Ciénega de Flores', 100)), ('Ciénega de Zimatlán', ('Ciénega de Zimatlán', 100)), ('Coacalco de Berriozábal', ('Coacalco de Berriozábal', 100)), ('Coahuayutla de José María Izazaga', ('Coahuayutla de José MarÃ\xada Izazaga', 100)), ('Coahuitlán', ('Coahuitlán', 100)), ('Coalcomán de Vázquez Pallares', ('Coalcomán de Vázquez Pallares', 100)), ('Coatlán del Río', ('Coatlán del RÃ\xado', 100)), ('Cocotitlán', ('Cocotitlán', 100)), ('Coicoyán de las Flores', ('Coicoyán de las Flores', 100)), ('Cojumatlán de Régules', ('Cojumatlán de Régules', 100)), ('Colotlán', ('Colotlán', 100)), ('Colón', ('Colón', 100)), ('Comitán de Domínguez', ('Comitán de DomÃ\xadnguez', 100)), ('Comondú', ('Comondú', 100)), ('Concepción Buenavista', ('Concepción Buenavista', 100)), ('Concepción Pápalo', ('Concepción Pápalo', 100)), ('Concepción de Buenos Aires', ('Concepción de Buenos Aires', 100)), ('Concepción del Oro', ('Concepción del Oro', 100)), ('Copainalá', ('Copainalá', 100)), ('Copándaro', ('Copándaro', 100)), ('Coquimatlán', ('Coquimatlán', 100)), ('Cosalá', ('Cosalá', 100)), ('Cosautlán de Carvajal', ('Cosautlán de Carvajal', 100)), ('Cosío', ('CosÃ\xado', 100)), ('Coxcatlán', ('Coxcatlán', 100)), ('Coyoacán', ('Coyoacán', 100)), ('Coyuca de Benítez', ('Coyuca de BenÃ\xadtez', 100)), ('Coyuca de Catalán', ('Coyuca de Catalán', 100)), ('Cualác', ('Cualác', 100)), ('Cuatro Ciénegas', ('Cuatro Ciénegas', 100)), ('Cuauhtémoc', ('Cuauhtémoc', 100)), ('Cuautinchán', ('Cuautinchán', 100)), ('Cuautitlán', ('Cuautitlán', 100)), ('Cuautitlán Izcalli', ('Cuautitlán Izcalli', 100)), ('Cuautitlán de García Barragán', ('Cuautitlán de GarcÃ\xada Barragán', 100)), ('Cuencamé', ('Cuencamé', 100)), ('Cuerámaro', ('Cuerámaro', 100)), ('Cuilápam de Guerrero', ('Cuilápam de Guerrero', 100)), ('Cuitláhuac', ('Cuitláhuac', 100)), ('Culiacán', ('Culiacán', 100)), ('Cunduacán', ('Cunduacán', 100)), ('Cuquío', ('CuquÃ\xado', 100)), ('Cutzamala de Pinzón', ('Cutzamala de Pinzón', 100)), ('Cuzamá', ('Cuzamá', 100)), ('Cárdenas', ('Cárdenas', 100)), ('Córdoba', ('Córdoba', 100)), ('Dr. Arroyo', ('Dr. Belisario DomÃ\xadnguez', 86)), ('Dr. Belisario Domínguez', ('Dr. Belisario DomÃ\xadnguez', 100)), ('Dr. Coss', ('Dr. Belisario DomÃ\xadnguez', 86)), ('Dr. González', ('González', 90)), ('Dzidzantún', ('Dzidzantún', 100)), ('Dzilam González', ('Dzilam González', 100)), ('Dzitás', ('Dzitás', 100)), ('Dzán', ('Dzan', 86)), ('El Limón', ('El Limón', 100)), ('El Marqués', ('El Marqués', 100)), ('El Plateado de Joaquín Amaro', ('El Plateado de JoaquÃ\xadn Amaro', 100)), ('Eloxochitlán', ('Eloxochitlán', 100)), ('Eloxochitlán de Flores Magón', ('Eloxochitlán de Flores Magón', 100)), ('Encarnación de Díaz', ('Encarnación de DÃ\xadaz', 100)), ('Epatlán', ('Epatlán', 100)), ('Erongarícuaro', ('ErongarÃ\xadcuaro', 100)), ('Escárcega', ('Escárcega', 100)), ('Españita', ('Españita', 100)), ('Etzatlán', ('Etzatlán', 100)), ('Fortín', ('FortÃ\xadn', 100)), ('Francisco León', ('Francisco León', 100)), ('García', ('GarcÃ\xada', 100)), ('General Felipe Ángeles', ('General Felipe Ã\x81ngeles', 100)), ('General Francisco R. Murguía', ('General Francisco R. MurguÃ\xada', 100)), ('General Plutarco Elías Calles', ('General Plutarco ElÃ\xadas Calles', 100)), ('General Pánfilo Natera', ('General Pánfilo Natera', 100)), ('General Simón Bolívar', ('General Simón BolÃ\xadvar', 100)), ('González', ('González', 100)), ('Gral. Bravo', ('Xayacatlán de Bravo', 86)), ('Gral. Escobedo', ('General Escobedo', 87)), ('Gral. Terán', ('General Terán', 82)), ('Gral. Treviño', ('General Treviño', 85)), ('Gral. Zaragoza', ('General Zaragoza', 87)), ('Gral. Zuazua', ('General Zuazua', 85)), ('Guadalcázar', ('Guadalcázar', 100)), ('Guadalupe de Ramírez', ('Guadalupe de RamÃ\xadrez', 100)), ('Guanaceví', ('GuanacevÃ\xad', 100)), ('Guelatao de Juárez', ('Guelatao de Juárez', 100)), ('Gustavo Díaz Ordaz', ('Gustavo DÃ\xadaz Ordaz', 100)), ('Gutiérrez Zamora', ('Gutiérrez Zamora', 100)), ('Gómez Farías', ('Gómez FarÃ\xadas', 100)), ('Gómez Palacio', ('Gómez Palacio', 100)), ('Güémez', ('Güémez', 100)), ('Halachó', ('Halachó', 100)), ('Hecelchakán', ('Hecelchakán', 100)), ('Heroica Ciudad de Huajuapan de León', ('Heroica Ciudad de Huajuapan de León', 100)), ('Heroica Ciudad de Juchitán de Zaragoza', ('Juchitán de Zaragoza', 90)), ('Hidalgotitlán', ('Hidalgotitlán', 100)), ('Hocabá', ('Hocabá', 100)), ('Hoctún', ('Hoctún', 100)), ('Homún', ('Homún', 100)), ('Hopelchén', ('Hopelchén', 100)), ('Huamuxtitlán', ('Huamuxtitlán', 100)), ('Huanímaro', ('HuanÃ\xadmaro', 100)), ('Huautla de Jiménez', ('Huautla de Jiménez', 100)), ('Huehuetlán', ('Huehuetlán', 100)), ('Huehuetlán el Chico', ('Huehuetlán el Chico', 100)), ('Huehuetlán el Grande', ('Huehuetlán el Grande', 100)), ('Huehuetán', ('Huehuetán', 100)), ('Huejotitán', ('Huejotitán', 100)), ('Huejúcar', ('Huejúcar', 100)), ('Huhí', ('HuhÃ\xad', 100)), ('Huiloapan de Cuauhtémoc', ('Huiloapan de Cuauhtémoc', 100)), ('Huitiupán', ('Huitiupán', 100)), ('Huitzilan de Serdán', ('Huitzilan de Serdán', 100)), ('Huixtán', ('Huixtán', 100)), ('Hunucmá', ('Hunucmá', 100)), ('Huásabas', ('Huásabas', 100)), ('Huépac', ('Huépac', 100)), ('Ilamatlán', ('Ilamatlán', 100)), ('Indé', ('Indé', 100)), ('Ixcateopan de Cuauhtémoc', ('Ixcateopan de Cuauhtémoc', 100)), ('Ixhuacán de los Reyes', ('Ixhuacán de los Reyes', 100)), ('Ixhuatlán de Madero', ('Ixhuatlán de Madero', 100)), ('Ixhuatlán del Café', ('Ixhuatlán del Café', 100)), ('Ixhuatlán del Sureste', ('Ixhuatlán del Sureste', 100)), ('Ixhuatán', ('Ixhuatán', 100)), ('Ixtacamaxtitlán', ('Ixtacamaxtitlán', 100)), ('Ixtacomitán', ('Ixtacomitán', 100)), ('Ixtaczoquitlán', ('Ixtaczoquitlán', 100)), ('Ixtlahuacán', ('Ixtlahuacán', 100)), ('Ixtlahuacán de los Membrillos', ('Ixtlahuacán de los Membrillos', 100)), ('Ixtlahuacán del Río', ('Ixtlahuacán del RÃ\xado', 100)), ('Ixtlán', ('Ixtlán', 100)), ('Ixtlán de Juárez', ('Ixtlán de Juárez', 100)), ('Ixtlán del Río', ('Ixtlán del RÃ\xado', 100)), ('Izúcar de Matamoros', ('Izúcar de Matamoros', 100)), ('Jalostotitlán', ('Jalostotitlán', 100)), ('Jalpa de Méndez', ('Jalpa de Méndez', 100)), ('Jaltocán', ('Jaltocán', 100)), ('Jerécuaro', ('Jerécuaro', 100)), ('Jesús Carranza', ('Jesús Carranza', 100)), ('Jesús María', ('Jesús MarÃ\xada', 100)), ('Jilotlán de los Dolores', ('Jilotlán de los Dolores', 100)), ('Jiménez', ('Jiménez', 100)), ('Jiménez del Teul', ('Jiménez del Teul', 100)), ('Jocotitlán', ('Jocotitlán', 100)), ('Jonacatepec', ('Jonacatepec de Leandro Valle', 90)), ('José Azueta', ('José Azueta', 100)), ('José Joaquín de Herrera', ('José JoaquÃ\xadn de Herrera', 100)), ('José María Morelos', ('José MarÃ\xada Morelos', 100)), ('José Sixto Verduzco', ('José Sixto Verduzco', 100)), ('Juan N. Méndez', ('Juan N. Méndez', 100)), ('Juan Rodríguez Clara', ('Juan RodrÃ\xadguez Clara', 100)), ('Juanacatlán', ('Juanacatlán', 100)), ('Juchitlán', ('Juchitlán', 100)), ('Juchitán', ('Juchitán', 100)), ('Juárez', ('Juárez', 100)), ('Juárez Hidalgo', ('Juárez Hidalgo', 100)), ('Jáltipan', ('Jáltipan', 100)), ('Kanasín', ('KanasÃ\xadn', 100)), ('Kopomá', ('Kopomá', 100)), ('La Compañía', ('La CompañÃ\xada', 100)), ('La Misión', ('La Misión', 100)), ('La Unión de Isidoro Montes de Oca', ('La Unión de Isidoro Montes de Oca', 100)), ('Larráinzar', ('Larráinzar', 100)), ('Las Vigas de Ramírez', ('Las Vigas de RamÃ\xadrez', 100)), ('León', ('León', 100)), ('Los Reyes de Juárez', ('Los Reyes de Juárez', 100)), ('Lázaro Cárdenas', ('Lázaro Cárdenas', 100)), ('López', ('López', 100)), ('Magdalena Ocotlán', ('Magdalena Ocotlán', 100)), ('Magdalena Peñasco', ('Magdalena Peñasco', 100)), ('Magdalena Tequisistlán', ('Magdalena Tequisistlán', 100)), ('Magdalena Yodocono de Porfirio Díaz', ('Magdalena Yodocono de Porfirio DÃ\xadaz', 100)), ('Magdalena Zahuatlán', ('Magdalena Zahuatlán', 100)), ('Maní', ('ManÃ\xad', 100)), ('Mapimí', ('MapimÃ\xad', 100)), ('Maravatío', ('MaravatÃ\xado', 100)), ('Mariscala de Juárez', ('Mariscala de Juárez', 100)), ('Marqués de Comillas', ('Marqués de Comillas', 100)), ('Martínez de la Torre', ('MartÃ\xadnez de la Torre', 100)), ('Marín', ('MarÃ\xadn', 100)), ('Matachí', ('MatachÃ\xad', 100)), ('Matías Romero Avendaño', ('MatÃ\xadas Romero Avendaño', 100)), ('Maxcanú', ('Maxcanú', 100)), ('Mayapán', ('Mayapán', 100)), ('Mazapiltepec de Juárez', ('Mazapiltepec de Juárez', 100)), ('Mazatecochco de José María Morelos', ('Mazatecochco de José MarÃ\xada Morelos', 100)), ('Mazatlán', ('Mazatlán', 100)), ('Mazatlán Villa de Flores', ('Mazatlán Villa de Flores', 100)), ('Mazatán', ('Mazatán', 100)), ('Mecatlán', ('Mecatlán', 100)), ('Medellín', ('MedellÃ\xadn de Bravo', 90)), ('Metlatónoc', ('Metlatónoc', 100)), ('Metztitlán', ('Metztitlán', 100)), ('Mexticacán', ('Mexticacán', 100)), ('Miacatlán', ('Miacatlán', 100)), ('Miahuatlán', ('Miahuatlán', 100)), ('Miahuatlán de Porfirio Díaz', ('Miahuatlán de Porfirio DÃ\xadaz', 100)), ('Miguel Alemán', ('Miguel Alemán', 100)), ('Minatitlán', ('Minatitlán', 100)), ('Mixistlán de la Reforma', ('Mixistlán de la Reforma', 100)), ('Mixquiahuala de Juárez', ('Mixquiahuala de Juárez', 100)), ('Mixtlán', ('Mixtlán', 100)), ('Mochitlán', ('Mochitlán', 100)), ('Mocochá', ('Mocochá', 100)), ('Moloacán', ('Moloacán', 100)), ('Moroleón', ('Moroleón', 100)), ('Mulegé', ('Mulegé', 100)), ('Muñoz de Domingo Arenas', ('Muñoz de Domingo Arenas', 100)), ('Mártir de Cuilapan', ('Mártir de Cuilapan', 100)), ('Mártires de Tacubaya', ('Mártires de Tacubaya', 100)), ('Méndez', ('Méndez', 100)), ('Mérida', ('Mérida', 100)), ('Múgica', ('Múgica', 100)), ('Múzquiz', ('Múzquiz', 100)), ('Nacozari de García', ('Nacozari de GarcÃ\xada', 100)), ('Nanchital de Lázaro Cárdenas del Río', ('Nanchital de Lázaro Cárdenas del RÃ\xado', 100)), ('Naranjos Amatlán', ('Naranjos Amatlán', 100)), ('Natívitas', ('NatÃ\xadvitas', 100)), ('Naucalpan de Juárez', ('Naucalpan de Juárez', 100)), ('Nezahualcóyotl', ('Nezahualcóyotl', 100)), ('Nicolás Bravo', ('Nicolás Bravo', 100)), ('Nicolás Flores', ('Nicolás Flores', 100)), ('Nicolás Romero', ('Nicolás Romero', 100)), ('Nicolás Ruíz', ('Nicolás RuÃ\xadz', 100)), ('Nochistlán de Mejía', ('Nochistlán de MejÃ\xada', 100)), ('Nocupétaro', ('Nocupétaro', 100)), ('Nopala de Villagrán', ('Nopala de Villagrán', 100)), ('Noria de Ángeles', ('Noria de Ã\x81ngeles', 100)), ('Nuevo Zoquiápam', ('Nuevo Zoquiápam', 100)), ('Numarán', ('Numarán', 100)), ('Nácori Chico', ('Nácori Chico', 100)), ('Oaxaca de Juárez', ('Oaxaca de Juárez', 100)), ('Ocotlán', ('Ocotlán', 100)), ('Ocotlán de Morelos', ('Ocotlán de Morelos', 100)), ('Olinalá', ('Olinalá', 100)), ('Omitlán de Juárez', ('Omitlán de Juárez', 100)), ('Onavas', ('Ã\x93navas', 91)), ('Opichén', ('Opichén', 100)), ('Ostuacán', ('Ostuacán', 100)), ('Otatitlán', ('Otatitlán', 100)), ('Othón P. Blanco', ('Othón P. Blanco', 100)), ('Otáez', ('Otáez', 100)), ('Ozuluama de Mascareñas', ('Ozuluama de Mascareñas', 100)), ('Pabellón de Arteaga', ('Pabellón de Arteaga', 100)), ('Pahuatlán', ('Pahuatlán', 100)), ('Pajacuarán', ('Pajacuarán', 100)), ('Panabá', ('Panabá', 100)), ('Panindícuaro', ('PanindÃ\xadcuaro', 100)), ('Pantelhó', ('Pantelhó', 100)), ('Papalotla de Xicohténcatl', ('Papalotla de Xicohténcatl', 100)), ('Paraíso', ('ParaÃ\xadso', 100)), ('Parácuaro', ('Parácuaro', 100)), ('Parás', ('Parás', 100)), ('Peribán', ('Peribán', 100)), ('Pesquería', ('PesquerÃ\xada', 100)), ('Petatlán', ('Petatlán', 100)), ('Peñamiller', ('Peñamiller', 100)), ('Peñón Blanco', ('Peñón Blanco', 100)), ('Platón Sánchez', ('Platón Sánchez', 100)), ('Polotitlán', ('Polotitlán', 100)), ('Poncitlán', ('Poncitlán', 100)), ('Progreso de Obregón', ('Progreso de Obregón', 100)), ('Pueblo Nuevo Solistahuacán', ('Pueblo Nuevo Solistahuacán', 100)), ('Puerto Peñasco', ('Puerto Peñasco', 100)), ('Puruándiro', ('Puruándiro', 100)), ('Purépero', ('Purépero', 100)), ('Purísima del Rincón', ('PurÃ\xadsima del Rincón', 100)), ('Pánuco', ('Pánuco', 100)), ('Pánuco de Coronado', ('Pánuco de Coronado', 100)), ('Pátzcuaro', ('Pátzcuaro', 100)), ('Pénjamo', ('Pénjamo', 100)), ('Queréndaro', ('Queréndaro', 100)), ('Querétaro', ('Querétaro', 100)), ('Quimixtlán', ('Quimixtlán', 100)), ('Rayón', ('Rayón', 100)), ('Rincón de Romos', ('Rincón de Romos', 100)), ('Rojas de Cuauhtémoc', ('Rojas de Cuauhtémoc', 100)), ('Ruíz', ('RuÃ\xadz', 100)), ('Río Blanco', ('RÃ\xado Blanco', 100)), ('Río Bravo', ('RÃ\xado Bravo', 100)), ('Río Grande', ('RÃ\xado Grande', 100)), ('Río Lagartos', ('RÃ\xado Lagartos', 100)), ('San Agustín Amatengo', ('San AgustÃ\xadn Amatengo', 100)), ('San Agustín Atenango', ('San AgustÃ\xadn Atenango', 100)), ('San Agustín Chayuco', ('San AgustÃ\xadn Chayuco', 100)), ('San Agustín Etla', ('San AgustÃ\xadn Etla', 100)), ('San Agustín Loxicha', ('San AgustÃ\xadn Loxicha', 100)), ('San Agustín Metzquititlán', ('San AgustÃ\xadn Metzquititlán', 100)), ('San Agustín Tlacotepec', ('San AgustÃ\xadn Tlacotepec', 100)), ('San Agustín Tlaxiaca', ('San AgustÃ\xadn Tlaxiaca', 100)), ('San Agustín Yatareni', ('San AgustÃ\xadn Yatareni', 100)), ('San Agustín de las Juntas', ('San AgustÃ\xadn de las Juntas', 100)), ('San Andrés Cabecera Nueva', ('San Andrés Cabecera Nueva', 100)), ('San Andrés Cholula', ('San Andrés Cholula', 100)), ('San Andrés Dinicuiti', ('San Andrés Dinicuiti', 100)), ('San Andrés Duraznal', ('San Andrés Duraznal', 100)), ('San Andrés Huaxpaltepec', ('San Andrés Huaxpaltepec', 100)), ('San Andrés Huayápam', ('San Andrés Huayápam', 100)), ('San Andrés Ixtlahuaca', ('San Andrés Ixtlahuaca', 100)), ('San Andrés Lagunas', ('San Andrés Lagunas', 100)), ('San Andrés Nuxiño', ('San Andrés Nuxiño', 100)), ('San Andrés Paxtlán', ('San Andrés Paxtlán', 100)), ('San Andrés Sinaxtla', ('San Andrés Sinaxtla', 100)), ('San Andrés Solaga', ('San Andrés Solaga', 100)), ('San Andrés Tenejapan', ('San Andrés Tenejapan', 100)), ('San Andrés Teotilálpam', ('San Andrés Teotilálpam', 100)), ('San Andrés Tepetlapa', ('San Andrés Tepetlapa', 100)), ('San Andrés Tuxtla', ('San Andrés Tuxtla', 100)), ('San Andrés Yaá', ('San Andrés Yaá', 100)), ('San Andrés Zabache', ('San Andrés Zabache', 100)), ('San Andrés Zautla', ('San Andrés Zautla', 100)), ('San Antonio Cañada', ('San Antonio Cañada', 100)), ('San Antonio Nanahuatípam', ('San Antonio NanahuatÃ\xadpam', 100)), ('San Baltazar Chichicápam', ('San Baltazar Chichicápam', 100)), ('San Bartolomé Ayautla', ('San Bartolomé Ayautla', 100)), ('San Bartolomé Loxicha', ('San Bartolomé Loxicha', 100)), ('San Bartolomé Quialana', ('San Bartolomé Quialana', 100)), ('San Bartolomé Yucuañe', ('San Bartolomé Yucuañe', 100)), ('San Bartolomé Zoogocho', ('San Bartolomé Zoogocho', 100)), ('San Blas Atempa', ('Heroica Villa de San Blas Atempa', 90)), ('San Cristóbal Amatlán', ('San Cristóbal Amatlán', 100)), ('San Cristóbal Amoltepec', ('San Cristóbal Amoltepec', 100)), ('San Cristóbal Lachirioag', ('San Cristóbal Lachirioag', 100)), ('San Cristóbal Suchixtlahuaca', ('San Cristóbal Suchixtlahuaca', 100)), ('San Cristóbal de la Barranca', ('San Cristóbal de la Barranca', 100)), ('San Cristóbal de las Casas', ('San Cristóbal de las Casas', 100)), ('San Damián Texóloc', ('San Damián Texóloc', 100)), ('San Diego de Alejandría', ('San Diego de AlejandrÃ\xada', 100)), ('San Diego de la Unión', ('San Diego de la Unión', 100)), ('San Dionisio Ocotlán', ('San Dionisio Ocotlán', 100)), ('San Felipe Jalapa de Díaz', ('San Felipe Jalapa de DÃ\xadaz', 100)), ('San Felipe Orizatlán', ('San Felipe Orizatlán', 100)), ('San Felipe Tejalápam', ('San Felipe Tejalápam', 100)), ('San Felipe Tepatlán', ('San Felipe Tepatlán', 100)), ('San Felipe de Jesús', ('San Felipe de Jesús', 100)), ('San Francisco Cahuacuá', ('San Francisco Cahuacuá', 100)), ('San Francisco Chindúa', ('San Francisco Chindúa', 100)), ('San Francisco Huehuetlán', ('San Francisco Huehuetlán', 100)), ('San Francisco Ixhuatán', ('San Francisco Ixhuatán', 100)), ('San Francisco Lachigoló', ('San Francisco Lachigoló', 100)), ('San Francisco Nuxaño', ('San Francisco Nuxaño', 100)), ('San Francisco del Rincón', ('San Francisco del Rincón', 100)), ('San Ignacio Río Muerto', ('San Ignacio RÃ\xado Muerto', 100)), ('San Ildefonso Amatlán', ('San Ildefonso Amatlán', 100)), ('San Jerónimo Coatlán', ('San Jerónimo Coatlán', 100)), ('San Jerónimo Silacayoapilla', ('San Jerónimo Silacayoapilla', 100)), ('San Jerónimo Sosola', ('San Jerónimo Sosola', 100)), ('San Jerónimo Taviche', ('San Jerónimo Taviche', 100)), ('San Jerónimo Tecuanipan', ('San Jerónimo Tecuanipan', 100)), ('San Jerónimo Tecóatl', ('San Jerónimo Tecóatl', 100)), ('San Jerónimo Tlacochahuaya', ('San Jerónimo Tlacochahuaya', 100)), ('San Jerónimo Xayacatlán', ('San Jerónimo Xayacatlán', 100)), ('San Jerónimo Zacualpan', ('San Jerónimo Zacualpan', 100)), ('San Joaquín', ('San JoaquÃ\xadn', 100)), ('San José Ayuquila', ('San José Ayuquila', 100)), ('San José Chiapa', ('San José Chiapa', 100)), ('San José Chiltepec', ('San José Chiltepec', 100)), ('San José Estancia Grande', ('San José Estancia Grande', 100)), ('San José Independencia', ('San José Independencia', 100)), ('San José Iturbide', ('San José Iturbide', 100)), ('San José Lachiguiri', ('San José Lachiguiri', 100)), ('San José Miahuatlán', ('San José Miahuatlán', 100)), ('San José Teacalco', ('San José Teacalco', 100)), ('San José Tenango', ('San José Tenango', 100)), ('San José de Gracia', ('San José de Gracia', 100)), ('San José del Peñasco', ('San José del Peñasco', 100)), ('San José del Progreso', ('San José del Progreso', 100)), ('San José del Rincón', ('San José del Rincón', 100)), ('San Juan Bautista Cuicatlán', ('San Juan Bautista Cuicatlán', 100)), ('San Juan Bautista Jayacatlán', ('San Juan Bautista Jayacatlán', 100)), ('San Juan Chicomezúchil', ('San Juan Chicomezúchil', 100)), ('San Juan Coatzóspam', ('San Juan Coatzóspam', 100)), ('San Juan Cotzocón', ('San Juan Cotzocón', 100)), ('San Juan Guelavía', ('San Juan GuelavÃ\xada', 100)), ('San Juan Mazatlán', ('San Juan Mazatlán', 100)), ('San Juan Mixtepec -Dto. 08 -', ('San Juan Mixtepec', 90)), ('San Juan Mixtepec -Dto. 26 -', ('San Juan Mixtepec', 90)), ('San Juan Tabaá', ('San Juan Tabaá', 100)), ('San Juan Yaeé', ('San Juan Yaeé', 100)), ('San Juan de los Cués', ('San Juan de los Cués', 100)), ('San Juan del Río', ('San Juan del RÃ\xado', 100)), ('San Juan Ñumí', ('San Juan Ã\x91umÃ\xad', 100)), ('San Julián', ('San Julián', 100)), ('San Lorenzo Texmelúcan', ('San Lorenzo Texmelúcan', 100)), ('San Lucas Camotlán', ('San Lucas Camotlán', 100)), ('San Lucas Ojitlán', ('San Lucas Ojitlán', 100)), ('San Lucas Quiaviní', ('San Lucas QuiavinÃ\xad', 100)), ('San Lucas Zoquiápam', ('San Lucas Zoquiápam', 100)), ('San Luis Acatlán', ('San Luis Acatlán', 100)), ('San Luis Amatlán', ('San Luis Amatlán', 100)), ('San Luis Potosí', ('San Luis PotosÃ\xad', 100)), ('San Luis Río Colorado', ('San Luis RÃ\xado Colorado', 100)), ('San Martín Chalchicuautla', ('San MartÃ\xadn Chalchicuautla', 100)), ('San Martín Hidalgo', ('San MartÃ\xadn Hidalgo', 100)), ('San Martín Huamelúlpam', ('San MartÃ\xadn Huamelúlpam', 100)), ('San Martín Itunyoso', ('San MartÃ\xadn Itunyoso', 100)), ('San Martín Lachilá', ('San MartÃ\xadn Lachilá', 100)), ('San Martín Peras', ('San MartÃ\xadn Peras', 100)), ('San Martín Texmelucan', ('San MartÃ\xadn Texmelucan', 100)), ('San Martín Tilcajete', ('San MartÃ\xadn Tilcajete', 100)), ('San Martín Totoltepec', ('San MartÃ\xadn Totoltepec', 100)), ('San Martín Toxpalan', ('San MartÃ\xadn Toxpalan', 100)), ('San Martín Zacatepec', ('San MartÃ\xadn Zacatepec', 100)), ('San Martín de Bolaños', ('San MartÃ\xadn de Bolaños', 100)), ('San Martín de las Pirámides', ('San MartÃ\xadn de las Pirámides', 100)), ('San Martín de los Cansecos', ('San MartÃ\xadn de los Cansecos', 100)), ('San Mateo Nejápam', ('San Mateo Nejápam', 100)), ('San Mateo Peñasco', ('San Mateo Peñasco', 100)), ('San Mateo Piñas', ('San Mateo Piñas', 100)), ('San Mateo Río Hondo', ('San Mateo RÃ\xado Hondo', 100)), ('San Mateo Yoloxochitlán', ('San Mateo Yoloxochitlán', 100)), ('San Mateo Yucutindó', ('San Mateo Yucutindoo', 95)), ('San Matías Tlalancaleca', ('San MatÃ\xadas Tlalancaleca', 100)), ('San Miguel Ahuehuetitlán', ('San Miguel Ahuehuetitlán', 100)), ('San Miguel Aloápam', ('San Miguel Aloápam', 100)), ('San Miguel Amatitlán', ('San Miguel Amatitlán', 100)), ('San Miguel Amatlán', ('San Miguel Amatlán', 100)), ('San Miguel Coatlán', ('San Miguel Coatlán', 100)), ('San Miguel Ixitlán', ('San Miguel Ixitlán', 100)), ('San Miguel Tecomatlán', ('San Miguel Tecomatlán', 100)), ('San Miguel Tilquiápam', ('San Miguel Tilquiápam', 100)), ('San Miguel del Río', ('San Miguel del RÃ\xado', 100)), ('San Nicolás', ('San Nicolás', 100)), ('San Nicolás Buenos Aires', ('San Nicolás Buenos Aires', 100)), ('San Nicolás Hidalgo', ('San Nicolás Hidalgo', 100)), ('San Nicolás Tolentino', ('San Nicolás Tolentino', 100)), ('San Nicolás de los Garza', ('San Nicolás de los Garza', 100)), ('San Nicolás de los Ranchos', ('San Nicolás de los Ranchos', 100)), ('San Pablo Coatlán', ('San Pablo Coatlán', 100)), ('San Pedro Apóstol', ('San Pedro Apóstol', 100)), ('San Pedro Coxcaltepec Cántaros', ('San Pedro Coxcaltepec Cántaros', 100)), ('San Pedro Garza García', ('San Pedro Garza GarcÃ\xada', 100)), ('San Pedro Ixcatlán', ('San Pedro Ixcatlán', 100)), ('San Pedro Jicayán', ('San Pedro Jicayán', 100)), ('San Pedro Mixtepec -Dto. 22 -', ('San Pedro Mixtepec', 90)), ('San Pedro Mixtepec -Dto. 26 -', ('San Pedro Mixtepec', 90)), ('San Pedro Mártir', ('San Pedro Mártir', 100)), ('San Pedro Mártir Quiechapa', ('San Pedro Mártir Quiechapa', 100)), ('San Pedro Mártir Yucuxaco', ('San Pedro Mártir Yucuxaco', 100)), ('San Pedro Sochiápam', ('San Pedro Sochiápam', 100)), ('San Pedro Tidaá', ('San Pedro Tidaá', 100)), ('San Pedro Totolápam', ('San Pedro Totolápam', 100)), ('San Pedro Yólox', ('San Pedro Yólox', 100)), ('San Sebastián Abasolo', ('San Sebastián Abasolo', 100)), ('San Sebastián Coatlán', ('San Sebastián Coatlán', 100)), ('San Sebastián Ixcapa', ('San Sebastián Ixcapa', 100)), ('San Sebastián Nicananduta', ('San Sebastián Nicananduta', 100)), ('San Sebastián Río Hondo', ('San Sebastián RÃ\xado Hondo', 100)), ('San Sebastián Tecomaxtlahuaca', ('San Sebastián Tecomaxtlahuaca', 100)), ('San Sebastián Teitipac', ('San Sebastián Teitipac', 100)), ('San Sebastián Tlacotepec', ('San Sebastián Tlacotepec', 100)), ('San Sebastián Tutla', ('San Sebastián Tutla', 100)), ('San Sebastián del Oeste', ('San Sebastián del Oeste', 100)), ('San Simón Almolongas', ('San Simón Almolongas', 100)), ('San Simón Zahuatlán', ('San Simón Zahuatlán', 100)), ('San Simón de Guerrero', ('San Simón de Guerrero', 100)), ('San Vicente Coatlán', ('San Vicente Coatlán', 100)), ('San Vicente Lachixío', ('San Vicente LachixÃ\xado', 100)), ('San Vicente Nuñú', ('San Vicente Nuñú', 100)), ('Sanctórum de Lázaro Cárdenas', ('Sanctórum de Lázaro Cárdenas', 100)), ('Santa Ana Cuauhtémoc', ('Santa Ana Cuauhtémoc', 100)), ('Santa Bárbara', ('Santa Bárbara', 100)), ('Santa Catalina Quierí', ('Santa Catalina QuierÃ\xad', 100)), ('Santa Catarina Mechoacán', ('Santa Catarina Mechoacán', 100)), ('Santa Catarina Quiané', ('Santa Catarina Quiané', 100)), ('Santa Catarina Ticuá', ('Santa Catarina Ticuá', 100)), ('Santa Catarina Yosonotú', ('Santa Catarina Yosonotú', 100)), ('Santa Cruz Xoxocotlán', ('Santa Cruz Xoxocotlán', 100)), ('Santa Inés Ahuatempan', ('Santa Inés Ahuatempan', 100)), ('Santa Inés Yatzeche', ('Santa Inés Yatzeche', 100)), ('Santa Inés de Zaragoza', ('Santa Inés de Zaragoza', 100)), ('Santa Inés del Monte', ('Santa Inés del Monte', 100)), ('Santa Lucía Miahuatlán', ('Santa LucÃ\xada Miahuatlán', 100)), ('Santa Lucía Monteverde', ('Santa LucÃ\xada Monteverde', 100)), ('Santa Lucía Ocotlán', ('Santa LucÃ\xada Ocotlán', 100)), ('Santa Lucía del Camino', ('Santa LucÃ\xada del Camino', 100)), ('Santa Magdalena Jicotlán', ('Santa Magdalena Jicotlán', 100)), ('Santa María Alotepec', ('Santa MarÃ\xada Alotepec', 100)), ('Santa María Apazco', ('Santa MarÃ\xada Apazco', 100)), ('Santa María Atzompa', ('Santa MarÃ\xada Atzompa', 100)), ('Santa María Camotlán', ('Santa MarÃ\xada Camotlán', 100)), ('Santa María Chachoápam', ('Santa MarÃ\xada Chachoápam', 100)), ('Santa María Chilchotla', ('Santa MarÃ\xada Chilchotla', 100)), ('Santa María Chimalapa', ('Santa MarÃ\xada Chimalapa', 100)), ('Santa María Colotepec', ('Santa MarÃ\xada Colotepec', 100)), ('Santa María Cortijo', ('Santa MarÃ\xada Cortijo', 100)), ('Santa María Coyotepec', ('Santa MarÃ\xada Coyotepec', 100)), ('Santa María Ecatepec', ('Santa MarÃ\xada Ecatepec', 100)), ('Santa María Guelacé', ('Santa MarÃ\xada Guelacé', 100)), ('Santa María Guienagati', ('Santa MarÃ\xada Guienagati', 100)), ('Santa María Huatulco', ('Santa MarÃ\xada Huatulco', 100)), ('Santa María Huazolotitlán', ('Santa MarÃ\xada Huazolotitlán', 100)), ('Santa María Ipalapa', ('Santa MarÃ\xada Ipalapa', 100)), ('Santa María Ixcatlán', ('Santa MarÃ\xada Ixcatlán', 100)), ('Santa María Jacatepec', ('Santa MarÃ\xada Jacatepec', 100)), ('Santa María Jalapa del Marqués', ('Santa MarÃ\xada Jalapa del Marqués', 100)), ('Santa María Jaltianguis', ('Santa MarÃ\xada Jaltianguis', 100)), ('Santa María Lachixío', ('Santa MarÃ\xada LachixÃ\xado', 100)), ('Santa María Mixtequilla', ('Santa MarÃ\xada Mixtequilla', 100)), ('Santa María Nativitas', ('Santa MarÃ\xada Nativitas', 100)), ('Santa María Nduayaco', ('Santa MarÃ\xada Nduayaco', 100)), ('Santa María Ozolotepec', ('Santa MarÃ\xada Ozolotepec', 100)), ('Santa María Petapa', ('Santa MarÃ\xada Petapa', 100)), ('Santa María Peñoles', ('Santa MarÃ\xada Peñoles', 100)), ('Santa María Pápalo', ('Santa MarÃ\xada Pápalo', 100)), ('Santa María Quiegolani', ('Santa MarÃ\xada Quiegolani', 100)), ('Santa María Sola', ('Santa MarÃ\xada Sola', 100)), ('Santa María Tataltepec', ('Santa MarÃ\xada Tataltepec', 100)), ('Santa María Tecomavaca', ('Santa MarÃ\xada Tecomavaca', 100)), ('Santa María Temaxcalapa', ('Santa MarÃ\xada Temaxcalapa', 100)), ('Santa María Temaxcaltepec', ('Santa MarÃ\xada Temaxcaltepec', 100)), ('Santa María Teopoxco', ('Santa MarÃ\xada Teopoxco', 100)), ('Santa María Tepantlali', ('Santa MarÃ\xada Tepantlali', 100)), ('Santa María Texcatitlán', ('Santa MarÃ\xada Texcatitlán', 100)), ('Santa María Tlahuitoltepec', ('Santa MarÃ\xada Tlahuitoltepec', 100)), ('Santa María Tlalixtac', ('Santa MarÃ\xada Tlalixtac', 100)), ('Santa María Tonameca', ('Santa MarÃ\xada Tonameca', 100)), ('Santa María Totolapilla', ('Santa MarÃ\xada Totolapilla', 100)), ('Santa María Xadani', ('Santa MarÃ\xada Xadani', 100)), ('Santa María Yalina', ('Santa MarÃ\xada Yalina', 100)), ('Santa María Yavesía', ('Santa MarÃ\xada YavesÃ\xada', 100)), ('Santa María Yolotepec', ('Santa MarÃ\xada Yolotepec', 100)), ('Santa María Yosoyúa', ('Santa MarÃ\xada Yosoyúa', 100)), ('Santa María Yucuhiti', ('Santa MarÃ\xada Yucuhiti', 100)), ('Santa María Zacatepec', ('Santa MarÃ\xada Zacatepec', 100)), ('Santa María Zaniza', ('Santa MarÃ\xada Zaniza', 100)), ('Santa María Zoquitlán', ('Santa MarÃ\xada Zoquitlán', 100)), ('Santa María de la Paz', ('Santa MarÃ\xada de la Paz', 100)), ('Santa María de los Ángeles', ('Santa MarÃ\xada de los Ã\x81ngeles', 100)), ('Santa María del Oro', ('Santa MarÃ\xada del Oro', 100)), ('Santa María del Rosario', ('Santa MarÃ\xada del Rosario', 100)), ('Santa María del Río', ('Santa MarÃ\xada del RÃ\xado', 100)), ('Santa María del Tule', ('Santa MarÃ\xada del Tule', 100)), ('Santa María la Asunción', ('Santa MarÃ\xada la Asunción', 100)), ('Santiago Apóstol', ('Santiago Apóstol', 100)), ('Santiago Atitlán', ('Santiago Atitlán', 100)), ('Santiago Camotlán', ('Santiago Camotlán', 100)), ('Santiago Chazumba', ('Villa de Santiago Chazumba', 90)), ('Santiago Choápam', ('Santiago Choápam', 100)), ('Santiago Huajolotitlán', ('Santiago Huajolotitlán', 100)), ('Santiago Ihuitlán Plumas', ('Santiago Ihuitlán Plumas', 100)), ('Santiago Maravatío', ('Santiago MaravatÃ\xado', 100)), ('Santiago Matatlán', ('Santiago Matatlán', 100)), ('Santiago Miahuatlán', ('Santiago Miahuatlán', 100)), ('Santiago Nuyoó', ('Santiago Nuyoó', 100)), ('Santiago Textitlán', ('Santiago Textitlán', 100)), ('Santiago Xiacuí', ('Santiago XiacuÃ\xad', 100)), ('Santiago Yolomécatl', ('Santiago Yolomécatl', 100)), ('Santiago Yosondúa', ('Santiago Yosondúa', 100)), ('Santiago del Río', ('Santiago del RÃ\xado', 100)), ('Santo Domingo Chihuitán', ('Santo Domingo Chihuitán', 100)), ('Santo Domingo Ixcatlán', ('Santo Domingo Ixcatlán', 100)), ('Santo Domingo Nuxaá', ('Santo Domingo Nuxaá', 100)), ('Santo Domingo Tlatayápam', ('Santo Domingo Tlatayápam', 100)), ('Santo Domingo Tonalá', ('Santo Domingo Tonalá', 100)), ('Santo Domingo Xagacía', ('Santo Domingo XagacÃ\xada', 100)), ('Santo Domingo Yanhuitlán', ('Santo Domingo Yanhuitlán', 100)), ('Santo Tomás', ('Santo Tomás', 100)), ('Santo Tomás Hueyotlipan', ('Santo Tomás Hueyotlipan', 100)), ('Santo Tomás Jalieza', ('Santo Tomás Jalieza', 100)), ('Santo Tomás Mazaltepec', ('Santo Tomás Mazaltepec', 100)), ('Santo Tomás Ocotepec', ('Santo Tomás Ocotepec', 100)), ('Santo Tomás Tamazulapan', ('Santo Tomás Tamazulapan', 100)), ('Santos Reyes Pápalo', ('Santos Reyes Pápalo', 100)), ('Santos Reyes Yucuná', ('Santos Reyes Yucuná', 100)), ('Satevó', ('Satevó', 100)), ('Sayula de Alemán', ('Sayula de Alemán', 100)), ('Seyé', ('Seyé', 100)), ('Silacayoápam', ('Silacayoápam', 100)), ('Silao', ('Silao de la Victoria', 90)), ('Sinanché', ('Sinanché', 100)), ('Sitalá', ('Sitalá', 100)), ('Soledad de Graciano Sánchez', ('Soledad de Graciano Sánchez', 100)), ('Soyaló', ('Soyaló', 100)), ('Soyaniquilpan de Juárez', ('Soyaniquilpan de Juárez', 100)), ('Sucilá', ('Sucilá', 100)), ('Susticacán', ('Susticacán', 100)), ('Sáric', ('Sáric', 100)), ('Súchil', ('Súchil', 100)), ('Tacámbaro', ('Tacámbaro', 100)), ('Tahdziú', ('Tahdziú', 100)), ('Tamalín', ('TamalÃ\xadn', 100)), ('Tamazulápam del Espíritu Santo', ('Tamazulápam del EspÃ\xadritu Santo', 100)), ('Tampacán', ('Tampacán', 100)), ('Tampamolón Corona', ('Tampamolón Corona', 100)), ('Tamuín', ('TamuÃ\xadn', 100)), ('Tancítaro', ('TancÃ\xadtaro', 100)), ('Tangancícuaro', ('TangancÃ\xadcuaro', 100)), ('Tanlajás', ('Tanlajás', 100)), ('Tanquián de Escobedo', ('Tanquián de Escobedo', 100)), ('Tarímbaro', ('TarÃ\xadmbaro', 100)), ('Tatahuicapan de Juárez', ('Tatahuicapan de Juárez', 100)), ('Tataltepec de Valdés', ('Tataltepec de Valdés', 100)), ('Taxco de Alarcón', ('Taxco de Alarcón', 100)), ('Tecalitlán', ('Tecalitlán', 100)), ('Tecolotlán', ('Tecolotlán', 100)), ('Tecomatlán', ('Tecomatlán', 100)), ('Tecomán', ('Tecomán', 100)), ('Tecpatán', ('Tecpatán', 100)), ('Tecámac', ('Tecámac', 100)), ('Tehuacán', ('Tehuacán', 100)), ('Tekantó', ('Tekantó', 100)), ('Temozón', ('Temozón', 100)), ('Temósachic', ('Temósachic', 100)), ('Tenamaxtlán', ('Tenamaxtlán', 100)), ('Tenochtitlán', ('Tenochtitlán', 100)), ('Teococuilco de Marcos Pérez', ('Teococuilco de Marcos Pérez', 100)), ('Teocuitatlán de Corona', ('Teocuitatlán de Corona', 100)), ('Teopantlán', ('Teopantlán', 100)), ('Teotihuacán', ('Teotihuacán', 100)), ('Teotitlán de Flores Magón', ('Teotitlán de Flores Magón', 100)), ('Teotitlán del Valle', ('Teotitlán del Valle', 100)), ('Tepakán', ('Tepakán', 100)), ('Tepanco de López', ('Tepanco de López', 100)), ('Tepango de Rodríguez', ('Tepango de RodrÃ\xadguez', 100)), ('Tepatitlán de Morelos', ('Tepatitlán de Morelos', 100)), ('Tepechitlán', ('Tepechitlán', 100)), ('Tepehuacán de Guerrero', ('Tepehuacán de Guerrero', 100)), ('Tepeji del Río de Ocampo', ('Tepeji del RÃ\xado de Ocampo', 100)), ('Tepetitla de Lardizábal', ('Tepetitla de Lardizábal', 100)), ('Tepetitlán', ('Tepetitlán', 100)), ('Tepetlán', ('Tepetlán', 100)), ('Tepexi de Rodríguez', ('Tepexi de RodrÃ\xadguez', 100)), ('Tepeyahualco de Cuauhtémoc', ('Tepeyahualco de Cuauhtémoc', 100)), ('Tepezalá', ('Tepezalá', 100)), ('Tepotzotlán', ('Tepotzotlán', 100)), ('Tepoztlán', ('Tepoztlán', 100)), ('Tetela del Volcán', ('Tetela del Volcán', 100)), ('Teteles de Avila Castillo', ('Teteles de Ã\x81vila Castillo', 98)), ('Teuchitlán', ('Teuchitlán', 100)), ('Texcaltitlán', ('Texcaltitlán', 100)), ('Texhuacán', ('Texhuacán', 100)), ('Teziutlán', ('Teziutlán', 100)), ('Tezoatlán de Segura y Luna', ('Heroica Villa Tezoatlán de Segura y Luna, Cuna de la Independencia de Oaxaca', 90)), ('Teúl de González Ortega', ('Teúl de González Ortega', 100)), ('Tihuatlán', ('Tihuatlán', 100)), ('Tingüindín', ('TingüindÃ\xadn', 100)), ('Tiquicheo de Nicolás Romero', ('Tiquicheo de Nicolás Romero', 100)), ('Tixmehuac', ('Tixméhuac', 94)), ('Tixpéhual', ('Tixpéhual', 100)), ('Tizapán el Alto', ('Tizapán el Alto', 100)), ('Tizimín', ('TizimÃ\xadn', 100)), ('Tlacotepec de Benito Juárez', ('Tlacotepec de Benito Juárez', 100)), ('Tlacotepec de Mejía', ('Tlacotepec de MejÃ\xada', 100)), ('Tlajomulco de Zúñiga', ('Tlajomulco de Zúñiga', 100)), ('Tlaltenango de Sánchez Román', ('Tlaltenango de Sánchez Román', 100)), ('Tlaltizapán', ('Tlaltizapán de Zapata', 90)), ('Tlapanalá', ('Tlapanalá', 100)), ('Tlaquepaque', ('San Pedro Tlaquepaque', 90)), ('Tláhuac', ('Tláhuac', 100)), ('Tocatlán', ('Tocatlán', 100)), ('Tolimán', ('Tolimán', 100)), ('Tomatlán', ('Tomatlán', 100)), ('Tonalá', ('Tonalá', 100)), ('Tonayán', ('Tonayán', 100)), ('Torreón', ('Torreón', 100)), ('Tototlán', ('Tototlán', 100)), ('Trinidad García de la Cadena', ('Trinidad GarcÃ\xada de la Cadena', 100)), ('Tultitlán', ('Tultitlán', 100)), ('Tumbalá', ('Tumbalá', 100)), ('Tumbiscatío', ('TumbiscatÃ\xado', 100)), ('Tunkás', ('Tunkás', 100)), ('Tuxtla Gutiérrez', ('Tuxtla Gutiérrez', 100)), ('Tuzantán', ('Tuzantán', 100)), ('Técpan de Galeana', ('Técpan de Galeana', 100)), ('Ucú', ('Ucú', 100)), ('Umán', ('Umán', 100)), ('Unión Hidalgo', ('Unión Hidalgo', 100)), ('Unión Juárez', ('Unión Juárez', 100)), ('Unión de San Antonio', ('Unión de San Antonio', 100)), ('Unión de Tula', ('Unión de Tula', 100)), ('Ursulo Galván', ('Ursulo Galván', 100)), ('Valle de Juárez', ('Valle de Juárez', 100)), ('Valparaíso', ('ValparaÃ\xadso', 100)), ('Villa Comaltitlán', ('Villa Comaltitlán', 100)), ('Villa Díaz Ordaz', ('Villa DÃ\xadaz Ordaz', 100)), ('Villa García', ('Villa GarcÃ\xada', 100)), ('Villa González Ortega', ('Villa González Ortega', 100)), ('Villa Juárez', ('Villa Juárez', 100)), ('Villa Purificación', ('Villa Purificación', 100)), ('Villa Tejúpam de la Unión', ('Villa Tejúpam de la Unión', 100)), ('Villa Unión', ('Villa Unión', 100)), ('Villa de Chilapa de Díaz', ('Villa de Chilapa de DÃ\xadaz', 100)), ('Villa de Tamazulápam del Progreso', ('Villa de Tamazulápam del Progreso', 100)), ('Villa de Tututepec de Melchor Ocampo', ('Villa de Tututepec', 90)), ('Villa de Álvarez', ('Villa de Ã\x81lvarez', 100)), ('Villa del Carbón', ('Villa del Carbón', 100)), ('Villagrán', ('Villagrán', 100)), ('Xalpatláhuac', ('Xalpatláhuac', 100)), ('Xayacatlán de Bravo', ('Xayacatlán de Bravo', 100)), ('Xichú', ('Xichú', 100)), ('Xicotlán', ('Xicotlán', 100)), ('Xicoténcatl', ('Xicoténcatl', 100)), ('Xochicoatlán', ('Xochicoatlán', 100)), ('Xochihuehuetlán', ('Xochihuehuetlán', 100)), ('Xochitlán Todos Santos', ('Xochitlán Todos Santos', 100)), ('Xochitlán de Vicente Suárez', ('Xochitlán de Vicente Suárez', 100)), ('Xonacatlán', ('Xonacatlán', 100)), ('Yahualica de González Gallo', ('Yahualica de González Gallo', 100)), ('Yajalón', ('Yajalón', 100)), ('Yaonáhuac', ('Yaonáhuac', 100)), ('Yaxcabá', ('Yaxcabá', 100)), ('Yobaín', ('YobaÃ\xadn', 100)), ('Yurécuaro', ('Yurécuaro', 100)), ('Yécora', ('Yécora', 100)), ('Zacatlán', ('Zacatlán', 100)), ('Zacualtipán de Ángeles', ('Zacualtipán de Ã\x81ngeles', 100)), ('Zapotitlán', ('Zapotitlán', 100)), ('Zapotitlán Lagunas', ('Zapotitlán Lagunas', 100)), ('Zapotitlán Palmas', ('Zapotitlán Palmas', 100)), ('Zapotitlán Tablas', ('Zapotitlán Tablas', 100)), ('Zapotitlán de Méndez', ('Zapotitlán de Méndez', 100)), ('Zapotitlán de Vadillo', ('Zapotitlán de Vadillo', 100)), ('Zapotlán de Juárez', ('Zapotlán de Juárez', 100)), ('Zapotlán del Rey', ('Zapotlán del Rey', 100)), ('Zapotlán el Grande', ('Zapotlán el Grande', 100)), ('Ziltlaltépec de Trinidad Sánchez Santos', ('Ziltlaltépec de Trinidad Sánchez Santos', 100)), ('Zimapán', ('Zimapán', 100)), ('Zimatlán de Álvarez', ('Zimatlán de Ã\x81lvarez', 100)), ('Zinacantán', ('Zinacantán', 100)), ('Zinapécuaro', ('Zinapécuaro', 100)), ('Zináparo', ('Zináparo', 100)), ('Zirándaro', ('Zirándaro', 100)), ('Zitácuaro', ('Zitácuaro', 100)), ('Zontecomatlán de López y Fuentes', ('Zontecomatlán de López y Fuentes', 100)), ('Zoquitlán', ('Zoquitlán', 100)), ('Zumpahuacán', ('Zumpahuacán', 100)), ('Álamo Temapache', ('Ã\x81lamo Temapache', 100)), ('Álvaro Obregón', ('Ã\x81lvaro Obregón', 100)), ('Ánimas Trujano', ('Ã\x81nimas Trujano', 100))]
In [ ]:
changes={c:fz.extractOne(c, solomunicipalidades)[0]
for c in sorted(solopoblacion)
if fz.extractOne(c, solomunicipalidades)[1]>90}
changes #creamos un diccionario con los datos que tenga una coincidencia mayor a 90%
Out[ ]:
{'Abalá': 'Abalá', 'Acapulco de Juárez': 'Acapulco de Juárez', 'Acatlán': 'Acatlán', 'Acatlán de Juárez': 'Acatlán de Juárez', 'Acatlán de Pérez Figueroa': 'Acatlán de Pérez Figueroa', 'Acaxochitlán': 'Acaxochitlán', 'Acuña': 'Acuña', 'Acámbaro': 'Acámbaro', 'Ahuacatlán': 'Ahuacatlán', 'Ahuatlán': 'Ahuatlán', 'Ajuchitlán del Progreso': 'Ajuchitlán del Progreso', 'Alamos': 'Ã\x81lamos', 'Almoloya de Juárez': 'Almoloya de Juárez', 'Almoloya del Río': 'Almoloya del RÃ\xado', 'Alpatláhuac': 'Alpatláhuac', 'Alto Lucero de Gutiérrez Barrios': 'Alto Lucero de Gutiérrez Barrios', 'Amatitlán': 'Amatitlán', 'Amatitán': 'Amatitán', 'Amatlán de Cañas': 'Amatlán de Cañas', 'Amatlán de los Reyes': 'Amatlán de los Reyes', 'Amatán': 'Amatán', 'Amixtlán': 'Amixtlán', 'Angel Albino Corzo': 'Ã\x81ngel Albino Corzo', 'Anáhuac': 'Anáhuac', 'Apatzingán': 'Apatzingán', 'Apetatitlán de Antonio Carvajal': 'Apetatitlán de Antonio Carvajal', 'Aquiles Serdán': 'Aquiles Serdán', 'Aquismón': 'Aquismón', 'Armería': 'ArmerÃ\xada', 'Ascensión': 'Ascensión', 'Asunción Cacalotepec': 'Asunción Cacalotepec', 'Asunción Cuyotepeji': 'Asunción Cuyotepeji', 'Asunción Ixtaltepec': 'Asunción Ixtaltepec', 'Asunción Nochixtlán': 'Asunción Nochixtlán', 'Asunción Ocotlán': 'Asunción Ocotlán', 'Asunción Tlacolulita': 'Asunción Tlacolulita', 'Atenango del Río': 'Atenango del RÃ\xado', 'Atizapán': 'Atizapán', 'Atizapán de Zaragoza': 'Atizapán de Zaragoza', 'Atoyac de Álvarez': 'Atoyac de Ã\x81lvarez', 'Atzitzihuacán': 'Atzitzihuacán', 'Autlán de Navarro': 'Autlán de Navarro', 'Ayotlán': 'Ayotlán', 'Azoyú': 'Azoyú', 'Bacadéhuachi': 'Bacadéhuachi', 'Bachíniva': 'BachÃ\xadniva', 'Bahía de Banderas': 'BahÃ\xada de Banderas', 'Balancán': 'Balancán', 'Banámichi': 'Banámichi', 'Baviácora': 'Baviácora', 'Benemérito de las Américas': 'Benemérito de las Américas', 'Benito Juárez': 'Benito Juárez', 'Benjamín Hill': 'BenjamÃ\xadn Hill', 'Berriozábal': 'Berriozábal', 'Boca del Río': 'Boca del RÃ\xado', 'Bokobá': 'Bokobá', 'Bolaños': 'Bolaños', 'Briseñas': 'Briseñas', 'Buenavista de Cuéllar': 'Buenavista de Cuéllar', 'Bácum': 'Bácum', 'Cacahoatán': 'Cacahoatán', 'Cacalchén': 'Cacalchén', 'Cadereyta Jiménez': 'Cadereyta Jiménez', 'Calihualá': 'Calihualá', 'Calkiní': 'CalkinÃ\xad', 'Camarón de Tejeda': 'Camarón de Tejeda', 'Canatlán': 'Canatlán', 'Capulálpam de Méndez': 'Capulálpam de Méndez', 'Carbó': 'Carbó', 'Carichí': 'CarichÃ\xad', 'Carácuaro': 'Carácuaro', 'Castaños': 'Castaños', 'Catazajá': 'Catazajá', 'Cañada Morelos': 'Cañada Morelos', 'Cañadas de Obregón': 'Cañadas de Obregón', 'Cañitas de Felipe Pescador': 'Cañitas de Felipe Pescador', 'Celestún': 'Celestún', 'Chacsinkín': 'ChacsinkÃ\xadn', 'Chalchihuitán': 'Chalchihuitán', 'Champotón': 'Champotón', 'Chapulhuacán': 'Chapulhuacán', 'Chenalhó': 'Chenalhó', 'Cherán': 'Cherán', 'Chichimilá': 'Chichimilá', 'Chicoasén': 'Chicoasén', 'Chigmecatitlán': 'Chigmecatitlán', 'Chilapa de Álvarez': 'Chilapa de Ã\x81lvarez', 'Chilón': 'Chilón', 'Chimalhuacán': 'Chimalhuacán', 'Chimaltitán': 'Chimaltitán', 'Chiquihuitlán de Benito Juárez': 'Chiquihuitlán de Benito Juárez', 'Chiquilistlán': 'Chiquilistlán', 'Chocamán': 'Chocamán', 'Chocholá': 'Chocholá', 'Chucándiro': 'Chucándiro', 'Chumatlán': 'Chumatlán', 'Chínipas': 'ChÃ\xadnipas', 'Cihuatlán': 'Cihuatlán', 'Citlaltépetl': 'Citlaltépetl', 'Ciudad Fernández': 'Ciudad Fernández', 'Ciudad del Maíz': 'Ciudad del MaÃ\xadz', 'Ciénega de Flores': 'Ciénega de Flores', 'Ciénega de Zimatlán': 'Ciénega de Zimatlán', 'Coacalco de Berriozábal': 'Coacalco de Berriozábal', 'Coahuayutla de José María Izazaga': 'Coahuayutla de José MarÃ\xada Izazaga', 'Coahuitlán': 'Coahuitlán', 'Coalcomán de Vázquez Pallares': 'Coalcomán de Vázquez Pallares', 'Coatlán del Río': 'Coatlán del RÃ\xado', 'Cocotitlán': 'Cocotitlán', 'Coicoyán de las Flores': 'Coicoyán de las Flores', 'Cojumatlán de Régules': 'Cojumatlán de Régules', 'Colotlán': 'Colotlán', 'Colón': 'Colón', 'Comitán de Domínguez': 'Comitán de DomÃ\xadnguez', 'Comondú': 'Comondú', 'Concepción Buenavista': 'Concepción Buenavista', 'Concepción Pápalo': 'Concepción Pápalo', 'Concepción de Buenos Aires': 'Concepción de Buenos Aires', 'Concepción del Oro': 'Concepción del Oro', 'Copainalá': 'Copainalá', 'Copándaro': 'Copándaro', 'Coquimatlán': 'Coquimatlán', 'Cosalá': 'Cosalá', 'Cosautlán de Carvajal': 'Cosautlán de Carvajal', 'Cosío': 'CosÃ\xado', 'Coxcatlán': 'Coxcatlán', 'Coyoacán': 'Coyoacán', 'Coyuca de Benítez': 'Coyuca de BenÃ\xadtez', 'Coyuca de Catalán': 'Coyuca de Catalán', 'Cualác': 'Cualác', 'Cuatro Ciénegas': 'Cuatro Ciénegas', 'Cuauhtémoc': 'Cuauhtémoc', 'Cuautinchán': 'Cuautinchán', 'Cuautitlán': 'Cuautitlán', 'Cuautitlán Izcalli': 'Cuautitlán Izcalli', 'Cuautitlán de García Barragán': 'Cuautitlán de GarcÃ\xada Barragán', 'Cuencamé': 'Cuencamé', 'Cuerámaro': 'Cuerámaro', 'Cuilápam de Guerrero': 'Cuilápam de Guerrero', 'Cuitláhuac': 'Cuitláhuac', 'Culiacán': 'Culiacán', 'Cunduacán': 'Cunduacán', 'Cuquío': 'CuquÃ\xado', 'Cutzamala de Pinzón': 'Cutzamala de Pinzón', 'Cuzamá': 'Cuzamá', 'Cárdenas': 'Cárdenas', 'Córdoba': 'Córdoba', 'Dr. Belisario Domínguez': 'Dr. Belisario DomÃ\xadnguez', 'Dzidzantún': 'Dzidzantún', 'Dzilam González': 'Dzilam González', 'Dzitás': 'Dzitás', 'El Limón': 'El Limón', 'El Marqués': 'El Marqués', 'El Plateado de Joaquín Amaro': 'El Plateado de JoaquÃ\xadn Amaro', 'Eloxochitlán': 'Eloxochitlán', 'Eloxochitlán de Flores Magón': 'Eloxochitlán de Flores Magón', 'Encarnación de Díaz': 'Encarnación de DÃ\xadaz', 'Epatlán': 'Epatlán', 'Erongarícuaro': 'ErongarÃ\xadcuaro', 'Escárcega': 'Escárcega', 'Españita': 'Españita', 'Etzatlán': 'Etzatlán', 'Fortín': 'FortÃ\xadn', 'Francisco León': 'Francisco León', 'García': 'GarcÃ\xada', 'General Felipe Ángeles': 'General Felipe Ã\x81ngeles', 'General Francisco R. Murguía': 'General Francisco R. MurguÃ\xada', 'General Plutarco Elías Calles': 'General Plutarco ElÃ\xadas Calles', 'General Pánfilo Natera': 'General Pánfilo Natera', 'General Simón Bolívar': 'General Simón BolÃ\xadvar', 'González': 'González', 'Guadalcázar': 'Guadalcázar', 'Guadalupe de Ramírez': 'Guadalupe de RamÃ\xadrez', 'Guanaceví': 'GuanacevÃ\xad', 'Guelatao de Juárez': 'Guelatao de Juárez', 'Gustavo Díaz Ordaz': 'Gustavo DÃ\xadaz Ordaz', 'Gutiérrez Zamora': 'Gutiérrez Zamora', 'Gómez Farías': 'Gómez FarÃ\xadas', 'Gómez Palacio': 'Gómez Palacio', 'Güémez': 'Güémez', 'Halachó': 'Halachó', 'Hecelchakán': 'Hecelchakán', 'Heroica Ciudad de Huajuapan de León': 'Heroica Ciudad de Huajuapan de León', 'Hidalgotitlán': 'Hidalgotitlán', 'Hocabá': 'Hocabá', 'Hoctún': 'Hoctún', 'Homún': 'Homún', 'Hopelchén': 'Hopelchén', 'Huamuxtitlán': 'Huamuxtitlán', 'Huanímaro': 'HuanÃ\xadmaro', 'Huautla de Jiménez': 'Huautla de Jiménez', 'Huehuetlán': 'Huehuetlán', 'Huehuetlán el Chico': 'Huehuetlán el Chico', 'Huehuetlán el Grande': 'Huehuetlán el Grande', 'Huehuetán': 'Huehuetán', 'Huejotitán': 'Huejotitán', 'Huejúcar': 'Huejúcar', 'Huhí': 'HuhÃ\xad', 'Huiloapan de Cuauhtémoc': 'Huiloapan de Cuauhtémoc', 'Huitiupán': 'Huitiupán', 'Huitzilan de Serdán': 'Huitzilan de Serdán', 'Huixtán': 'Huixtán', 'Hunucmá': 'Hunucmá', 'Huásabas': 'Huásabas', 'Huépac': 'Huépac', 'Ilamatlán': 'Ilamatlán', 'Indé': 'Indé', 'Ixcateopan de Cuauhtémoc': 'Ixcateopan de Cuauhtémoc', 'Ixhuacán de los Reyes': 'Ixhuacán de los Reyes', 'Ixhuatlán de Madero': 'Ixhuatlán de Madero', 'Ixhuatlán del Café': 'Ixhuatlán del Café', 'Ixhuatlán del Sureste': 'Ixhuatlán del Sureste', 'Ixhuatán': 'Ixhuatán', 'Ixtacamaxtitlán': 'Ixtacamaxtitlán', 'Ixtacomitán': 'Ixtacomitán', 'Ixtaczoquitlán': 'Ixtaczoquitlán', 'Ixtlahuacán': 'Ixtlahuacán', 'Ixtlahuacán de los Membrillos': 'Ixtlahuacán de los Membrillos', 'Ixtlahuacán del Río': 'Ixtlahuacán del RÃ\xado', 'Ixtlán': 'Ixtlán', 'Ixtlán de Juárez': 'Ixtlán de Juárez', 'Ixtlán del Río': 'Ixtlán del RÃ\xado', 'Izúcar de Matamoros': 'Izúcar de Matamoros', 'Jalostotitlán': 'Jalostotitlán', 'Jalpa de Méndez': 'Jalpa de Méndez', 'Jaltocán': 'Jaltocán', 'Jerécuaro': 'Jerécuaro', 'Jesús Carranza': 'Jesús Carranza', 'Jesús María': 'Jesús MarÃ\xada', 'Jilotlán de los Dolores': 'Jilotlán de los Dolores', 'Jiménez': 'Jiménez', 'Jiménez del Teul': 'Jiménez del Teul', 'Jocotitlán': 'Jocotitlán', 'José Azueta': 'José Azueta', 'José Joaquín de Herrera': 'José JoaquÃ\xadn de Herrera', 'José María Morelos': 'José MarÃ\xada Morelos', 'José Sixto Verduzco': 'José Sixto Verduzco', 'Juan N. Méndez': 'Juan N. Méndez', 'Juan Rodríguez Clara': 'Juan RodrÃ\xadguez Clara', 'Juanacatlán': 'Juanacatlán', 'Juchitlán': 'Juchitlán', 'Juchitán': 'Juchitán', 'Juárez': 'Juárez', 'Juárez Hidalgo': 'Juárez Hidalgo', 'Jáltipan': 'Jáltipan', 'Kanasín': 'KanasÃ\xadn', 'Kopomá': 'Kopomá', 'La Compañía': 'La CompañÃ\xada', 'La Misión': 'La Misión', 'La Unión de Isidoro Montes de Oca': 'La Unión de Isidoro Montes de Oca', 'Larráinzar': 'Larráinzar', 'Las Vigas de Ramírez': 'Las Vigas de RamÃ\xadrez', 'León': 'León', 'Los Reyes de Juárez': 'Los Reyes de Juárez', 'Lázaro Cárdenas': 'Lázaro Cárdenas', 'López': 'López', 'Magdalena Ocotlán': 'Magdalena Ocotlán', 'Magdalena Peñasco': 'Magdalena Peñasco', 'Magdalena Tequisistlán': 'Magdalena Tequisistlán', 'Magdalena Yodocono de Porfirio Díaz': 'Magdalena Yodocono de Porfirio DÃ\xadaz', 'Magdalena Zahuatlán': 'Magdalena Zahuatlán', 'Maní': 'ManÃ\xad', 'Mapimí': 'MapimÃ\xad', 'Maravatío': 'MaravatÃ\xado', 'Mariscala de Juárez': 'Mariscala de Juárez', 'Marqués de Comillas': 'Marqués de Comillas', 'Martínez de la Torre': 'MartÃ\xadnez de la Torre', 'Marín': 'MarÃ\xadn', 'Matachí': 'MatachÃ\xad', 'Matías Romero Avendaño': 'MatÃ\xadas Romero Avendaño', 'Maxcanú': 'Maxcanú', 'Mayapán': 'Mayapán', 'Mazapiltepec de Juárez': 'Mazapiltepec de Juárez', 'Mazatecochco de José María Morelos': 'Mazatecochco de José MarÃ\xada Morelos', 'Mazatlán': 'Mazatlán', 'Mazatlán Villa de Flores': 'Mazatlán Villa de Flores', 'Mazatán': 'Mazatán', 'Mecatlán': 'Mecatlán', 'Metlatónoc': 'Metlatónoc', 'Metztitlán': 'Metztitlán', 'Mexticacán': 'Mexticacán', 'Miacatlán': 'Miacatlán', 'Miahuatlán': 'Miahuatlán', 'Miahuatlán de Porfirio Díaz': 'Miahuatlán de Porfirio DÃ\xadaz', 'Miguel Alemán': 'Miguel Alemán', 'Minatitlán': 'Minatitlán', 'Mixistlán de la Reforma': 'Mixistlán de la Reforma', 'Mixquiahuala de Juárez': 'Mixquiahuala de Juárez', 'Mixtlán': 'Mixtlán', 'Mochitlán': 'Mochitlán', 'Mocochá': 'Mocochá', 'Moloacán': 'Moloacán', 'Moroleón': 'Moroleón', 'Mulegé': 'Mulegé', 'Muñoz de Domingo Arenas': 'Muñoz de Domingo Arenas', 'Mártir de Cuilapan': 'Mártir de Cuilapan', 'Mártires de Tacubaya': 'Mártires de Tacubaya', 'Méndez': 'Méndez', 'Mérida': 'Mérida', 'Múgica': 'Múgica', 'Múzquiz': 'Múzquiz', 'Nacozari de García': 'Nacozari de GarcÃ\xada', 'Nanchital de Lázaro Cárdenas del Río': 'Nanchital de Lázaro Cárdenas del RÃ\xado', 'Naranjos Amatlán': 'Naranjos Amatlán', 'Natívitas': 'NatÃ\xadvitas', 'Naucalpan de Juárez': 'Naucalpan de Juárez', 'Nezahualcóyotl': 'Nezahualcóyotl', 'Nicolás Bravo': 'Nicolás Bravo', 'Nicolás Flores': 'Nicolás Flores', 'Nicolás Romero': 'Nicolás Romero', 'Nicolás Ruíz': 'Nicolás RuÃ\xadz', 'Nochistlán de Mejía': 'Nochistlán de MejÃ\xada', 'Nocupétaro': 'Nocupétaro', 'Nopala de Villagrán': 'Nopala de Villagrán', 'Noria de Ángeles': 'Noria de Ã\x81ngeles', 'Nuevo Zoquiápam': 'Nuevo Zoquiápam', 'Numarán': 'Numarán', 'Nácori Chico': 'Nácori Chico', 'Oaxaca de Juárez': 'Oaxaca de Juárez', 'Ocotlán': 'Ocotlán', 'Ocotlán de Morelos': 'Ocotlán de Morelos', 'Olinalá': 'Olinalá', 'Omitlán de Juárez': 'Omitlán de Juárez', 'Onavas': 'Ã\x93navas', 'Opichén': 'Opichén', 'Ostuacán': 'Ostuacán', 'Otatitlán': 'Otatitlán', 'Othón P. Blanco': 'Othón P. Blanco', 'Otáez': 'Otáez', 'Ozuluama de Mascareñas': 'Ozuluama de Mascareñas', 'Pabellón de Arteaga': 'Pabellón de Arteaga', 'Pahuatlán': 'Pahuatlán', 'Pajacuarán': 'Pajacuarán', 'Panabá': 'Panabá', 'Panindícuaro': 'PanindÃ\xadcuaro', 'Pantelhó': 'Pantelhó', 'Papalotla de Xicohténcatl': 'Papalotla de Xicohténcatl', 'Paraíso': 'ParaÃ\xadso', 'Parácuaro': 'Parácuaro', 'Parás': 'Parás', 'Peribán': 'Peribán', 'Pesquería': 'PesquerÃ\xada', 'Petatlán': 'Petatlán', 'Peñamiller': 'Peñamiller', 'Peñón Blanco': 'Peñón Blanco', 'Platón Sánchez': 'Platón Sánchez', 'Polotitlán': 'Polotitlán', 'Poncitlán': 'Poncitlán', 'Progreso de Obregón': 'Progreso de Obregón', 'Pueblo Nuevo Solistahuacán': 'Pueblo Nuevo Solistahuacán', 'Puerto Peñasco': 'Puerto Peñasco', 'Puruándiro': 'Puruándiro', 'Purépero': 'Purépero', 'Purísima del Rincón': 'PurÃ\xadsima del Rincón', 'Pánuco': 'Pánuco', 'Pánuco de Coronado': 'Pánuco de Coronado', 'Pátzcuaro': 'Pátzcuaro', 'Pénjamo': 'Pénjamo', 'Queréndaro': 'Queréndaro', 'Querétaro': 'Querétaro', 'Quimixtlán': 'Quimixtlán', 'Rayón': 'Rayón', 'Rincón de Romos': 'Rincón de Romos', 'Rojas de Cuauhtémoc': 'Rojas de Cuauhtémoc', 'Ruíz': 'RuÃ\xadz', 'Río Blanco': 'RÃ\xado Blanco', 'Río Bravo': 'RÃ\xado Bravo', 'Río Grande': 'RÃ\xado Grande', 'Río Lagartos': 'RÃ\xado Lagartos', 'San Agustín Amatengo': 'San AgustÃ\xadn Amatengo', 'San Agustín Atenango': 'San AgustÃ\xadn Atenango', 'San Agustín Chayuco': 'San AgustÃ\xadn Chayuco', 'San Agustín Etla': 'San AgustÃ\xadn Etla', 'San Agustín Loxicha': 'San AgustÃ\xadn Loxicha', 'San Agustín Metzquititlán': 'San AgustÃ\xadn Metzquititlán', 'San Agustín Tlacotepec': 'San AgustÃ\xadn Tlacotepec', 'San Agustín Tlaxiaca': 'San AgustÃ\xadn Tlaxiaca', 'San Agustín Yatareni': 'San AgustÃ\xadn Yatareni', 'San Agustín de las Juntas': 'San AgustÃ\xadn de las Juntas', 'San Andrés Cabecera Nueva': 'San Andrés Cabecera Nueva', 'San Andrés Cholula': 'San Andrés Cholula', 'San Andrés Dinicuiti': 'San Andrés Dinicuiti', 'San Andrés Duraznal': 'San Andrés Duraznal', 'San Andrés Huaxpaltepec': 'San Andrés Huaxpaltepec', 'San Andrés Huayápam': 'San Andrés Huayápam', 'San Andrés Ixtlahuaca': 'San Andrés Ixtlahuaca', 'San Andrés Lagunas': 'San Andrés Lagunas', 'San Andrés Nuxiño': 'San Andrés Nuxiño', 'San Andrés Paxtlán': 'San Andrés Paxtlán', 'San Andrés Sinaxtla': 'San Andrés Sinaxtla', 'San Andrés Solaga': 'San Andrés Solaga', 'San Andrés Tenejapan': 'San Andrés Tenejapan', 'San Andrés Teotilálpam': 'San Andrés Teotilálpam', 'San Andrés Tepetlapa': 'San Andrés Tepetlapa', 'San Andrés Tuxtla': 'San Andrés Tuxtla', 'San Andrés Yaá': 'San Andrés Yaá', 'San Andrés Zabache': 'San Andrés Zabache', 'San Andrés Zautla': 'San Andrés Zautla', 'San Antonio Cañada': 'San Antonio Cañada', 'San Antonio Nanahuatípam': 'San Antonio NanahuatÃ\xadpam', 'San Baltazar Chichicápam': 'San Baltazar Chichicápam', 'San Bartolomé Ayautla': 'San Bartolomé Ayautla', 'San Bartolomé Loxicha': 'San Bartolomé Loxicha', 'San Bartolomé Quialana': 'San Bartolomé Quialana', 'San Bartolomé Yucuañe': 'San Bartolomé Yucuañe', 'San Bartolomé Zoogocho': 'San Bartolomé Zoogocho', 'San Cristóbal Amatlán': 'San Cristóbal Amatlán', 'San Cristóbal Amoltepec': 'San Cristóbal Amoltepec', 'San Cristóbal Lachirioag': 'San Cristóbal Lachirioag', 'San Cristóbal Suchixtlahuaca': 'San Cristóbal Suchixtlahuaca', 'San Cristóbal de la Barranca': 'San Cristóbal de la Barranca', 'San Cristóbal de las Casas': 'San Cristóbal de las Casas', 'San Damián Texóloc': 'San Damián Texóloc', 'San Diego de Alejandría': 'San Diego de AlejandrÃ\xada', 'San Diego de la Unión': 'San Diego de la Unión', 'San Dionisio Ocotlán': 'San Dionisio Ocotlán', 'San Felipe Jalapa de Díaz': 'San Felipe Jalapa de DÃ\xadaz', 'San Felipe Orizatlán': 'San Felipe Orizatlán', 'San Felipe Tejalápam': 'San Felipe Tejalápam', 'San Felipe Tepatlán': 'San Felipe Tepatlán', 'San Felipe de Jesús': 'San Felipe de Jesús', 'San Francisco Cahuacuá': 'San Francisco Cahuacuá', 'San Francisco Chindúa': 'San Francisco Chindúa', 'San Francisco Huehuetlán': 'San Francisco Huehuetlán', 'San Francisco Ixhuatán': 'San Francisco Ixhuatán', 'San Francisco Lachigoló': 'San Francisco Lachigoló', 'San Francisco Nuxaño': 'San Francisco Nuxaño', 'San Francisco del Rincón': 'San Francisco del Rincón', 'San Ignacio Río Muerto': 'San Ignacio RÃ\xado Muerto', 'San Ildefonso Amatlán': 'San Ildefonso Amatlán', 'San Jerónimo Coatlán': 'San Jerónimo Coatlán', 'San Jerónimo Silacayoapilla': 'San Jerónimo Silacayoapilla', 'San Jerónimo Sosola': 'San Jerónimo Sosola', 'San Jerónimo Taviche': 'San Jerónimo Taviche', 'San Jerónimo Tecuanipan': 'San Jerónimo Tecuanipan', 'San Jerónimo Tecóatl': 'San Jerónimo Tecóatl', 'San Jerónimo Tlacochahuaya': 'San Jerónimo Tlacochahuaya', 'San Jerónimo Xayacatlán': 'San Jerónimo Xayacatlán', 'San Jerónimo Zacualpan': 'San Jerónimo Zacualpan', 'San Joaquín': 'San JoaquÃ\xadn', 'San José Ayuquila': 'San José Ayuquila', 'San José Chiapa': 'San José Chiapa', 'San José Chiltepec': 'San José Chiltepec', 'San José Estancia Grande': 'San José Estancia Grande', 'San José Independencia': 'San José Independencia', 'San José Iturbide': 'San José Iturbide', 'San José Lachiguiri': 'San José Lachiguiri', 'San José Miahuatlán': 'San José Miahuatlán', 'San José Teacalco': 'San José Teacalco', 'San José Tenango': 'San José Tenango', 'San José de Gracia': 'San José de Gracia', 'San José del Peñasco': 'San José del Peñasco', 'San José del Progreso': 'San José del Progreso', 'San José del Rincón': 'San José del Rincón', 'San Juan Bautista Cuicatlán': 'San Juan Bautista Cuicatlán', 'San Juan Bautista Jayacatlán': 'San Juan Bautista Jayacatlán', 'San Juan Chicomezúchil': 'San Juan Chicomezúchil', 'San Juan Coatzóspam': 'San Juan Coatzóspam', 'San Juan Cotzocón': 'San Juan Cotzocón', 'San Juan Guelavía': 'San Juan GuelavÃ\xada', 'San Juan Mazatlán': 'San Juan Mazatlán', 'San Juan Tabaá': 'San Juan Tabaá', 'San Juan Yaeé': 'San Juan Yaeé', 'San Juan de los Cués': 'San Juan de los Cués', 'San Juan del Río': 'San Juan del RÃ\xado', 'San Juan Ñumí': 'San Juan Ã\x91umÃ\xad', 'San Julián': 'San Julián', 'San Lorenzo Texmelúcan': 'San Lorenzo Texmelúcan', 'San Lucas Camotlán': 'San Lucas Camotlán', 'San Lucas Ojitlán': 'San Lucas Ojitlán', 'San Lucas Quiaviní': 'San Lucas QuiavinÃ\xad', 'San Lucas Zoquiápam': 'San Lucas Zoquiápam', 'San Luis Acatlán': 'San Luis Acatlán', 'San Luis Amatlán': 'San Luis Amatlán', 'San Luis Potosí': 'San Luis PotosÃ\xad', 'San Luis Río Colorado': 'San Luis RÃ\xado Colorado', 'San Martín Chalchicuautla': 'San MartÃ\xadn Chalchicuautla', 'San Martín Hidalgo': 'San MartÃ\xadn Hidalgo', 'San Martín Huamelúlpam': 'San MartÃ\xadn Huamelúlpam', 'San Martín Itunyoso': 'San MartÃ\xadn Itunyoso', 'San Martín Lachilá': 'San MartÃ\xadn Lachilá', 'San Martín Peras': 'San MartÃ\xadn Peras', 'San Martín Texmelucan': 'San MartÃ\xadn Texmelucan', 'San Martín Tilcajete': 'San MartÃ\xadn Tilcajete', 'San Martín Totoltepec': 'San MartÃ\xadn Totoltepec', 'San Martín Toxpalan': 'San MartÃ\xadn Toxpalan', 'San Martín Zacatepec': 'San MartÃ\xadn Zacatepec', 'San Martín de Bolaños': 'San MartÃ\xadn de Bolaños', 'San Martín de las Pirámides': 'San MartÃ\xadn de las Pirámides', 'San Martín de los Cansecos': 'San MartÃ\xadn de los Cansecos', 'San Mateo Nejápam': 'San Mateo Nejápam', 'San Mateo Peñasco': 'San Mateo Peñasco', 'San Mateo Piñas': 'San Mateo Piñas', 'San Mateo Río Hondo': 'San Mateo RÃ\xado Hondo', 'San Mateo Yoloxochitlán': 'San Mateo Yoloxochitlán', 'San Mateo Yucutindó': 'San Mateo Yucutindoo', 'San Matías Tlalancaleca': 'San MatÃ\xadas Tlalancaleca', 'San Miguel Ahuehuetitlán': 'San Miguel Ahuehuetitlán', 'San Miguel Aloápam': 'San Miguel Aloápam', 'San Miguel Amatitlán': 'San Miguel Amatitlán', 'San Miguel Amatlán': 'San Miguel Amatlán', 'San Miguel Coatlán': 'San Miguel Coatlán', 'San Miguel Ixitlán': 'San Miguel Ixitlán', 'San Miguel Tecomatlán': 'San Miguel Tecomatlán', 'San Miguel Tilquiápam': 'San Miguel Tilquiápam', 'San Miguel del Río': 'San Miguel del RÃ\xado', 'San Nicolás': 'San Nicolás', 'San Nicolás Buenos Aires': 'San Nicolás Buenos Aires', 'San Nicolás Hidalgo': 'San Nicolás Hidalgo', 'San Nicolás Tolentino': 'San Nicolás Tolentino', 'San Nicolás de los Garza': 'San Nicolás de los Garza', 'San Nicolás de los Ranchos': 'San Nicolás de los Ranchos', 'San Pablo Coatlán': 'San Pablo Coatlán', 'San Pedro Apóstol': 'San Pedro Apóstol', 'San Pedro Coxcaltepec Cántaros': 'San Pedro Coxcaltepec Cántaros', 'San Pedro Garza García': 'San Pedro Garza GarcÃ\xada', 'San Pedro Ixcatlán': 'San Pedro Ixcatlán', 'San Pedro Jicayán': 'San Pedro Jicayán', 'San Pedro Mártir': 'San Pedro Mártir', 'San Pedro Mártir Quiechapa': 'San Pedro Mártir Quiechapa', 'San Pedro Mártir Yucuxaco': 'San Pedro Mártir Yucuxaco', 'San Pedro Sochiápam': 'San Pedro Sochiápam', 'San Pedro Tidaá': 'San Pedro Tidaá', 'San Pedro Totolápam': 'San Pedro Totolápam', 'San Pedro Yólox': 'San Pedro Yólox', 'San Sebastián Abasolo': 'San Sebastián Abasolo', 'San Sebastián Coatlán': 'San Sebastián Coatlán', 'San Sebastián Ixcapa': 'San Sebastián Ixcapa', 'San Sebastián Nicananduta': 'San Sebastián Nicananduta', 'San Sebastián Río Hondo': 'San Sebastián RÃ\xado Hondo', 'San Sebastián Tecomaxtlahuaca': 'San Sebastián Tecomaxtlahuaca', 'San Sebastián Teitipac': 'San Sebastián Teitipac', 'San Sebastián Tlacotepec': 'San Sebastián Tlacotepec', 'San Sebastián Tutla': 'San Sebastián Tutla', 'San Sebastián del Oeste': 'San Sebastián del Oeste', 'San Simón Almolongas': 'San Simón Almolongas', 'San Simón Zahuatlán': 'San Simón Zahuatlán', 'San Simón de Guerrero': 'San Simón de Guerrero', 'San Vicente Coatlán': 'San Vicente Coatlán', 'San Vicente Lachixío': 'San Vicente LachixÃ\xado', 'San Vicente Nuñú': 'San Vicente Nuñú', 'Sanctórum de Lázaro Cárdenas': 'Sanctórum de Lázaro Cárdenas', 'Santa Ana Cuauhtémoc': 'Santa Ana Cuauhtémoc', 'Santa Bárbara': 'Santa Bárbara', 'Santa Catalina Quierí': 'Santa Catalina QuierÃ\xad', 'Santa Catarina Mechoacán': 'Santa Catarina Mechoacán', 'Santa Catarina Quiané': 'Santa Catarina Quiané', 'Santa Catarina Ticuá': 'Santa Catarina Ticuá', 'Santa Catarina Yosonotú': 'Santa Catarina Yosonotú', 'Santa Cruz Xoxocotlán': 'Santa Cruz Xoxocotlán', 'Santa Inés Ahuatempan': 'Santa Inés Ahuatempan', 'Santa Inés Yatzeche': 'Santa Inés Yatzeche', 'Santa Inés de Zaragoza': 'Santa Inés de Zaragoza', 'Santa Inés del Monte': 'Santa Inés del Monte', 'Santa Lucía Miahuatlán': 'Santa LucÃ\xada Miahuatlán', 'Santa Lucía Monteverde': 'Santa LucÃ\xada Monteverde', 'Santa Lucía Ocotlán': 'Santa LucÃ\xada Ocotlán', 'Santa Lucía del Camino': 'Santa LucÃ\xada del Camino', 'Santa Magdalena Jicotlán': 'Santa Magdalena Jicotlán', 'Santa María Alotepec': 'Santa MarÃ\xada Alotepec', 'Santa María Apazco': 'Santa MarÃ\xada Apazco', 'Santa María Atzompa': 'Santa MarÃ\xada Atzompa', 'Santa María Camotlán': 'Santa MarÃ\xada Camotlán', 'Santa María Chachoápam': 'Santa MarÃ\xada Chachoápam', 'Santa María Chilchotla': 'Santa MarÃ\xada Chilchotla', 'Santa María Chimalapa': 'Santa MarÃ\xada Chimalapa', 'Santa María Colotepec': 'Santa MarÃ\xada Colotepec', 'Santa María Cortijo': 'Santa MarÃ\xada Cortijo', 'Santa María Coyotepec': 'Santa MarÃ\xada Coyotepec', 'Santa María Ecatepec': 'Santa MarÃ\xada Ecatepec', 'Santa María Guelacé': 'Santa MarÃ\xada Guelacé', 'Santa María Guienagati': 'Santa MarÃ\xada Guienagati', 'Santa María Huatulco': 'Santa MarÃ\xada Huatulco', 'Santa María Huazolotitlán': 'Santa MarÃ\xada Huazolotitlán', 'Santa María Ipalapa': 'Santa MarÃ\xada Ipalapa', 'Santa María Ixcatlán': 'Santa MarÃ\xada Ixcatlán', 'Santa María Jacatepec': 'Santa MarÃ\xada Jacatepec', 'Santa María Jalapa del Marqués': 'Santa MarÃ\xada Jalapa del Marqués', 'Santa María Jaltianguis': 'Santa MarÃ\xada Jaltianguis', 'Santa María Lachixío': 'Santa MarÃ\xada LachixÃ\xado', 'Santa María Mixtequilla': 'Santa MarÃ\xada Mixtequilla', 'Santa María Nativitas': 'Santa MarÃ\xada Nativitas', 'Santa María Nduayaco': 'Santa MarÃ\xada Nduayaco', 'Santa María Ozolotepec': 'Santa MarÃ\xada Ozolotepec', 'Santa María Petapa': 'Santa MarÃ\xada Petapa', 'Santa María Peñoles': 'Santa MarÃ\xada Peñoles', 'Santa María Pápalo': 'Santa MarÃ\xada Pápalo', 'Santa María Quiegolani': 'Santa MarÃ\xada Quiegolani', 'Santa María Sola': 'Santa MarÃ\xada Sola', 'Santa María Tataltepec': 'Santa MarÃ\xada Tataltepec', 'Santa María Tecomavaca': 'Santa MarÃ\xada Tecomavaca', 'Santa María Temaxcalapa': 'Santa MarÃ\xada Temaxcalapa', 'Santa María Temaxcaltepec': 'Santa MarÃ\xada Temaxcaltepec', 'Santa María Teopoxco': 'Santa MarÃ\xada Teopoxco', 'Santa María Tepantlali': 'Santa MarÃ\xada Tepantlali', 'Santa María Texcatitlán': 'Santa MarÃ\xada Texcatitlán', 'Santa María Tlahuitoltepec': 'Santa MarÃ\xada Tlahuitoltepec', 'Santa María Tlalixtac': 'Santa MarÃ\xada Tlalixtac', 'Santa María Tonameca': 'Santa MarÃ\xada Tonameca', 'Santa María Totolapilla': 'Santa MarÃ\xada Totolapilla', 'Santa María Xadani': 'Santa MarÃ\xada Xadani', 'Santa María Yalina': 'Santa MarÃ\xada Yalina', 'Santa María Yavesía': 'Santa MarÃ\xada YavesÃ\xada', 'Santa María Yolotepec': 'Santa MarÃ\xada Yolotepec', 'Santa María Yosoyúa': 'Santa MarÃ\xada Yosoyúa', 'Santa María Yucuhiti': 'Santa MarÃ\xada Yucuhiti', 'Santa María Zacatepec': 'Santa MarÃ\xada Zacatepec', 'Santa María Zaniza': 'Santa MarÃ\xada Zaniza', 'Santa María Zoquitlán': 'Santa MarÃ\xada Zoquitlán', 'Santa María de la Paz': 'Santa MarÃ\xada de la Paz', 'Santa María de los Ángeles': 'Santa MarÃ\xada de los Ã\x81ngeles', 'Santa María del Oro': 'Santa MarÃ\xada del Oro', 'Santa María del Rosario': 'Santa MarÃ\xada del Rosario', 'Santa María del Río': 'Santa MarÃ\xada del RÃ\xado', 'Santa María del Tule': 'Santa MarÃ\xada del Tule', 'Santa María la Asunción': 'Santa MarÃ\xada la Asunción', 'Santiago Apóstol': 'Santiago Apóstol', 'Santiago Atitlán': 'Santiago Atitlán', 'Santiago Camotlán': 'Santiago Camotlán', 'Santiago Choápam': 'Santiago Choápam', 'Santiago Huajolotitlán': 'Santiago Huajolotitlán', 'Santiago Ihuitlán Plumas': 'Santiago Ihuitlán Plumas', 'Santiago Maravatío': 'Santiago MaravatÃ\xado', 'Santiago Matatlán': 'Santiago Matatlán', 'Santiago Miahuatlán': 'Santiago Miahuatlán', 'Santiago Nuyoó': 'Santiago Nuyoó', 'Santiago Textitlán': 'Santiago Textitlán', 'Santiago Xiacuí': 'Santiago XiacuÃ\xad', 'Santiago Yolomécatl': 'Santiago Yolomécatl', 'Santiago Yosondúa': 'Santiago Yosondúa', 'Santiago del Río': 'Santiago del RÃ\xado', 'Santo Domingo Chihuitán': 'Santo Domingo Chihuitán', 'Santo Domingo Ixcatlán': 'Santo Domingo Ixcatlán', 'Santo Domingo Nuxaá': 'Santo Domingo Nuxaá', 'Santo Domingo Tlatayápam': 'Santo Domingo Tlatayápam', 'Santo Domingo Tonalá': 'Santo Domingo Tonalá', 'Santo Domingo Xagacía': 'Santo Domingo XagacÃ\xada', 'Santo Domingo Yanhuitlán': 'Santo Domingo Yanhuitlán', 'Santo Tomás': 'Santo Tomás', 'Santo Tomás Hueyotlipan': 'Santo Tomás Hueyotlipan', 'Santo Tomás Jalieza': 'Santo Tomás Jalieza', 'Santo Tomás Mazaltepec': 'Santo Tomás Mazaltepec', 'Santo Tomás Ocotepec': 'Santo Tomás Ocotepec', 'Santo Tomás Tamazulapan': 'Santo Tomás Tamazulapan', 'Santos Reyes Pápalo': 'Santos Reyes Pápalo', 'Santos Reyes Yucuná': 'Santos Reyes Yucuná', 'Satevó': 'Satevó', 'Sayula de Alemán': 'Sayula de Alemán', 'Seyé': 'Seyé', 'Silacayoápam': 'Silacayoápam', 'Sinanché': 'Sinanché', 'Sitalá': 'Sitalá', 'Soledad de Graciano Sánchez': 'Soledad de Graciano Sánchez', 'Soyaló': 'Soyaló', 'Soyaniquilpan de Juárez': 'Soyaniquilpan de Juárez', 'Sucilá': 'Sucilá', 'Susticacán': 'Susticacán', 'Sáric': 'Sáric', 'Súchil': 'Súchil', 'Tacámbaro': 'Tacámbaro', 'Tahdziú': 'Tahdziú', 'Tamalín': 'TamalÃ\xadn', 'Tamazulápam del Espíritu Santo': 'Tamazulápam del EspÃ\xadritu Santo', 'Tampacán': 'Tampacán', 'Tampamolón Corona': 'Tampamolón Corona', 'Tamuín': 'TamuÃ\xadn', 'Tancítaro': 'TancÃ\xadtaro', 'Tangancícuaro': 'TangancÃ\xadcuaro', 'Tanlajás': 'Tanlajás', 'Tanquián de Escobedo': 'Tanquián de Escobedo', 'Tarímbaro': 'TarÃ\xadmbaro', 'Tatahuicapan de Juárez': 'Tatahuicapan de Juárez', 'Tataltepec de Valdés': 'Tataltepec de Valdés', 'Taxco de Alarcón': 'Taxco de Alarcón', 'Tecalitlán': 'Tecalitlán', 'Tecolotlán': 'Tecolotlán', 'Tecomatlán': 'Tecomatlán', 'Tecomán': 'Tecomán', 'Tecpatán': 'Tecpatán', 'Tecámac': 'Tecámac', 'Tehuacán': 'Tehuacán', 'Tekantó': 'Tekantó', 'Temozón': 'Temozón', 'Temósachic': 'Temósachic', 'Tenamaxtlán': 'Tenamaxtlán', 'Tenochtitlán': 'Tenochtitlán', 'Teococuilco de Marcos Pérez': 'Teococuilco de Marcos Pérez', 'Teocuitatlán de Corona': 'Teocuitatlán de Corona', 'Teopantlán': 'Teopantlán', 'Teotihuacán': 'Teotihuacán', 'Teotitlán de Flores Magón': 'Teotitlán de Flores Magón', 'Teotitlán del Valle': 'Teotitlán del Valle', 'Tepakán': 'Tepakán', 'Tepanco de López': 'Tepanco de López', 'Tepango de Rodríguez': 'Tepango de RodrÃ\xadguez', 'Tepatitlán de Morelos': 'Tepatitlán de Morelos', 'Tepechitlán': 'Tepechitlán', 'Tepehuacán de Guerrero': 'Tepehuacán de Guerrero', 'Tepeji del Río de Ocampo': 'Tepeji del RÃ\xado de Ocampo', 'Tepetitla de Lardizábal': 'Tepetitla de Lardizábal', 'Tepetitlán': 'Tepetitlán', 'Tepetlán': 'Tepetlán', 'Tepexi de Rodríguez': 'Tepexi de RodrÃ\xadguez', 'Tepeyahualco de Cuauhtémoc': 'Tepeyahualco de Cuauhtémoc', 'Tepezalá': 'Tepezalá', 'Tepotzotlán': 'Tepotzotlán', 'Tepoztlán': 'Tepoztlán', 'Tetela del Volcán': 'Tetela del Volcán', 'Teteles de Avila Castillo': 'Teteles de Ã\x81vila Castillo', 'Teuchitlán': 'Teuchitlán', 'Texcaltitlán': 'Texcaltitlán', 'Texhuacán': 'Texhuacán', 'Teziutlán': 'Teziutlán', 'Teúl de González Ortega': 'Teúl de González Ortega', 'Tihuatlán': 'Tihuatlán', 'Tingüindín': 'TingüindÃ\xadn', 'Tiquicheo de Nicolás Romero': 'Tiquicheo de Nicolás Romero', 'Tixmehuac': 'Tixméhuac', 'Tixpéhual': 'Tixpéhual', 'Tizapán el Alto': 'Tizapán el Alto', 'Tizimín': 'TizimÃ\xadn', 'Tlacotepec de Benito Juárez': 'Tlacotepec de Benito Juárez', 'Tlacotepec de Mejía': 'Tlacotepec de MejÃ\xada', 'Tlajomulco de Zúñiga': 'Tlajomulco de Zúñiga', 'Tlaltenango de Sánchez Román': 'Tlaltenango de Sánchez Román', 'Tlapanalá': 'Tlapanalá', 'Tláhuac': 'Tláhuac', 'Tocatlán': 'Tocatlán', 'Tolimán': 'Tolimán', 'Tomatlán': 'Tomatlán', 'Tonalá': 'Tonalá', 'Tonayán': 'Tonayán', 'Torreón': 'Torreón', 'Tototlán': 'Tototlán', 'Trinidad García de la Cadena': 'Trinidad GarcÃ\xada de la Cadena', 'Tultitlán': 'Tultitlán', 'Tumbalá': 'Tumbalá', 'Tumbiscatío': 'TumbiscatÃ\xado', 'Tunkás': 'Tunkás', 'Tuxtla Gutiérrez': 'Tuxtla Gutiérrez', 'Tuzantán': 'Tuzantán', 'Técpan de Galeana': 'Técpan de Galeana', 'Ucú': 'Ucú', 'Umán': 'Umán', 'Unión Hidalgo': 'Unión Hidalgo', 'Unión Juárez': 'Unión Juárez', 'Unión de San Antonio': 'Unión de San Antonio', 'Unión de Tula': 'Unión de Tula', 'Ursulo Galván': 'Ursulo Galván', 'Valle de Juárez': 'Valle de Juárez', 'Valparaíso': 'ValparaÃ\xadso', 'Villa Comaltitlán': 'Villa Comaltitlán', 'Villa Díaz Ordaz': 'Villa DÃ\xadaz Ordaz', 'Villa García': 'Villa GarcÃ\xada', 'Villa González Ortega': 'Villa González Ortega', 'Villa Juárez': 'Villa Juárez', 'Villa Purificación': 'Villa Purificación', 'Villa Tejúpam de la Unión': 'Villa Tejúpam de la Unión', 'Villa Unión': 'Villa Unión', 'Villa de Chilapa de Díaz': 'Villa de Chilapa de DÃ\xadaz', 'Villa de Tamazulápam del Progreso': 'Villa de Tamazulápam del Progreso', 'Villa de Álvarez': 'Villa de Ã\x81lvarez', 'Villa del Carbón': 'Villa del Carbón', 'Villagrán': 'Villagrán', 'Xalpatláhuac': 'Xalpatláhuac', 'Xayacatlán de Bravo': 'Xayacatlán de Bravo', 'Xichú': 'Xichú', 'Xicotlán': 'Xicotlán', 'Xicoténcatl': 'Xicoténcatl', 'Xochicoatlán': 'Xochicoatlán', 'Xochihuehuetlán': 'Xochihuehuetlán', 'Xochitlán Todos Santos': 'Xochitlán Todos Santos', 'Xochitlán de Vicente Suárez': 'Xochitlán de Vicente Suárez', 'Xonacatlán': 'Xonacatlán', 'Yahualica de González Gallo': 'Yahualica de González Gallo', 'Yajalón': 'Yajalón', 'Yaonáhuac': 'Yaonáhuac', 'Yaxcabá': 'Yaxcabá', 'Yobaín': 'YobaÃ\xadn', 'Yurécuaro': 'Yurécuaro', 'Yécora': 'Yécora', 'Zacatlán': 'Zacatlán', 'Zacualtipán de Ángeles': 'Zacualtipán de Ã\x81ngeles', 'Zapotitlán': 'Zapotitlán', 'Zapotitlán Lagunas': 'Zapotitlán Lagunas', 'Zapotitlán Palmas': 'Zapotitlán Palmas', 'Zapotitlán Tablas': 'Zapotitlán Tablas', 'Zapotitlán de Méndez': 'Zapotitlán de Méndez', 'Zapotitlán de Vadillo': 'Zapotitlán de Vadillo', 'Zapotlán de Juárez': 'Zapotlán de Juárez', 'Zapotlán del Rey': 'Zapotlán del Rey', 'Zapotlán el Grande': 'Zapotlán el Grande', 'Ziltlaltépec de Trinidad Sánchez Santos': 'Ziltlaltépec de Trinidad Sánchez Santos', 'Zimapán': 'Zimapán', 'Zimatlán de Álvarez': 'Zimatlán de Ã\x81lvarez', 'Zinacantán': 'Zinacantán', 'Zinapécuaro': 'Zinapécuaro', 'Zináparo': 'Zináparo', 'Zirándaro': 'Zirándaro', 'Zitácuaro': 'Zitácuaro', 'Zontecomatlán de López y Fuentes': 'Zontecomatlán de López y Fuentes', 'Zoquitlán': 'Zoquitlán', 'Zumpahuacán': 'Zumpahuacán', 'Álamo Temapache': 'Ã\x81lamo Temapache', 'Álvaro Obregón': 'Ã\x81lvaro Obregón', 'Ánimas Trujano': 'Ã\x81nimas Trujano'}
In [ ]:
poblacion2010['Municipio'] = poblacion2010['Municipio'].map(changes).fillna(poblacion2010['Municipio'])
mexico_municipalities.merge(poblacion2010,left_on='NOMGEO',right_on='Municipio')
Out[ ]:
CVEGEO | CVE_ENT | CVE_MUN | NOMGEO | NOM_ENT | COV_ | COV_ID | AREA | PERIMETER | geometry | EntidadID | MunicipioID | Municipio | Poblacion | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 01008 | 01 | 008 | San José de Gracia | Aguascalientes | 0 | 1 | 857.790574 | 181.537599 | MULTIPOLYGON (((2453326.553 1143576.423, 24533... | 1 | 8 | San José de Gracia | 8443 |
1 | 01009 | 01 | 009 | Tepezalá | Aguascalientes | 1 | 2 | 229.661012 | 89.329532 | MULTIPOLYGON (((2481826.447 1149055.253, 24815... | 1 | 9 | Tepezalá | 19668 |
2 | 01007 | 01 | 007 | Rincón de Romos | Aguascalientes | 2 | 3 | 372.295163 | 161.749880 | MULTIPOLYGON (((2476760.231 1150329.045, 24767... | 1 | 7 | Rincón de Romos | 49156 |
3 | 01006 | 01 | 006 | Pabellón de Arteaga | Aguascalientes | 3 | 4 | 195.735946 | 105.612997 | MULTIPOLYGON (((2473996.656 1129304.114, 24742... | 1 | 6 | Pabellón de Arteaga | 41862 |
4 | 01005 | 01 | 005 | Jesús MarÃa | Aguascalientes | 4 | 5 | 499.895092 | 163.500811 | MULTIPOLYGON (((2463657.764 1116053.82, 246373... | 1 | 5 | Jesús MarÃa | 99590 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2888 | 32027 | 32 | 027 | Melchor Ocampo | Zacatecas | 2473 | 2474 | 1862.048602 | 247.933775 | MULTIPOLYGON (((2470352.986 1453426.983, 24732... | 15 | 53 | Melchor Ocampo | 50240 |
2889 | 32027 | 32 | 027 | Melchor Ocampo | Zacatecas | 2473 | 2474 | 1862.048602 | 247.933775 | MULTIPOLYGON (((2470352.986 1453426.983, 24732... | 19 | 35 | Melchor Ocampo | 862 |
2890 | 32027 | 32 | 027 | Melchor Ocampo | Zacatecas | 2473 | 2474 | 1862.048602 | 247.933775 | MULTIPOLYGON (((2470352.986 1453426.983, 24732... | 32 | 27 | Melchor Ocampo | 2662 |
2891 | 32024 | 32 | 024 | Loreto | Zacatecas | 2474 | 2475 | 424.658188 | 136.687153 | MULTIPOLYGON (((2487234.035 1151121.912, 24873... | 3 | 9 | Loreto | 16738 |
2892 | 32024 | 32 | 024 | Loreto | Zacatecas | 2474 | 2475 | 424.658188 | 136.687153 | MULTIPOLYGON (((2487234.035 1151121.912, 24873... | 32 | 24 | Loreto | 48365 |
2893 rows × 14 columns
In [ ]:
# eliminamos las municipalidades repetidas del merge
mexico_municipalities.drop_duplicates(subset='NOMGEO', keep='first', inplace=True)
merged_data = mexico_municipalities.merge(poblacion2010, left_on='NOMGEO', right_on='Municipio')
merged_data
Out[ ]:
CVEGEO | CVE_ENT | CVE_MUN | NOMGEO | NOM_ENT | COV_ | COV_ID | AREA | PERIMETER | geometry | EntidadID | MunicipioID | Municipio | Poblacion | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 01008 | 01 | 008 | San José de Gracia | Aguascalientes | 0 | 1 | 857.790574 | 181.537599 | MULTIPOLYGON (((2453326.553 1143576.423, 24533... | 1 | 8 | San José de Gracia | 8443 |
1 | 01009 | 01 | 009 | Tepezalá | Aguascalientes | 1 | 2 | 229.661012 | 89.329532 | MULTIPOLYGON (((2481826.447 1149055.253, 24815... | 1 | 9 | Tepezalá | 19668 |
2 | 01007 | 01 | 007 | Rincón de Romos | Aguascalientes | 2 | 3 | 372.295163 | 161.749880 | MULTIPOLYGON (((2476760.231 1150329.045, 24767... | 1 | 7 | Rincón de Romos | 49156 |
3 | 01006 | 01 | 006 | Pabellón de Arteaga | Aguascalientes | 3 | 4 | 195.735946 | 105.612997 | MULTIPOLYGON (((2473996.656 1129304.114, 24742... | 1 | 6 | Pabellón de Arteaga | 41862 |
4 | 01005 | 01 | 005 | Jesús MarÃa | Aguascalientes | 4 | 5 | 499.895092 | 163.500811 | MULTIPOLYGON (((2463657.764 1116053.82, 246373... | 1 | 5 | Jesús MarÃa | 99590 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2423 | 32033 | 32 | 033 | Moyahua de Estrada | Zacatecas | 2468 | 2469 | 535.272259 | 146.517695 | MULTIPOLYGON (((2374490.807 1036859.485, 23745... | 32 | 33 | Moyahua de Estrada | 4563 |
2424 | 32031 | 32 | 031 | Monte Escobedo | Zacatecas | 2469 | 2470 | 1582.976177 | 290.315815 | MULTIPOLYGON (((2358014.128 1182803.876, 23580... | 32 | 31 | Monte Escobedo | 8929 |
2425 | 32029 | 32 | 029 | Miguel Auza | Zacatecas | 2470 | 2471 | 1093.921188 | 183.913765 | MULTIPOLYGON (((2355465.893 1369546.77, 235554... | 32 | 29 | Miguel Auza | 22296 |
2426 | 32028 | 32 | 028 | Mezquital del Oro | Zacatecas | 2471 | 2472 | 482.008504 | 146.234897 | MULTIPOLYGON (((2367118.716 1037654.815, 23671... | 32 | 28 | Mezquital del Oro | 2584 |
2427 | 32011 | 32 | 011 | Trinidad GarcÃa de la Cadena | Zacatecas | 2472 | 2473 | 304.265670 | 105.480166 | MULTIPOLYGON (((2351804.877 1035949.877, 23518... | 32 | 11 | Trinidad GarcÃa de la Cadena | 3013 |
2428 rows × 14 columns
In [ ]:
merged_data.info()
<class 'geopandas.geodataframe.GeoDataFrame'> RangeIndex: 2428 entries, 0 to 2427 Data columns (total 14 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 CVEGEO 2428 non-null object 1 CVE_ENT 2428 non-null object 2 CVE_MUN 2428 non-null object 3 NOMGEO 2428 non-null object 4 NOM_ENT 2428 non-null object 5 COV_ 2428 non-null int64 6 COV_ID 2428 non-null int64 7 AREA 2428 non-null float64 8 PERIMETER 2428 non-null float64 9 geometry 2428 non-null geometry 10 EntidadID 2428 non-null int64 11 MunicipioID 2428 non-null int64 12 Municipio 2428 non-null object 13 Poblacion 2428 non-null int64 dtypes: float64(2), geometry(1), int64(5), object(6) memory usage: 265.7+ KB
In [ ]:
# eliminar algunas columnas
merged_data = merged_data.drop(columns=['NOM_ENT', 'EntidadID', 'MunicipioID', 'Municipio'])
merged_data.info()
<class 'geopandas.geodataframe.GeoDataFrame'> RangeIndex: 2428 entries, 0 to 2427 Data columns (total 10 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 CVEGEO 2428 non-null object 1 CVE_ENT 2428 non-null object 2 CVE_MUN 2428 non-null object 3 NOMGEO 2428 non-null object 4 COV_ 2428 non-null int64 5 COV_ID 2428 non-null int64 6 AREA 2428 non-null float64 7 PERIMETER 2428 non-null float64 8 geometry 2428 non-null geometry 9 Poblacion 2428 non-null int64 dtypes: float64(2), geometry(1), int64(3), object(4) memory usage: 189.8+ KB
In [ ]:
POPULATION = merged_data.groupby("CVE_ENT")["Poblacion"].sum().reset_index()
POPULATION
Out[ ]:
CVE_ENT | Poblacion | |
---|---|---|
0 | 01 | 1203630 |
1 | 02 | 3263861 |
2 | 03 | 939236 |
3 | 04 | 838533 |
4 | 05 | 5567537 |
5 | 06 | 1506780 |
6 | 07 | 6032737 |
7 | 08 | 2749943 |
8 | 09 | 8634139 |
9 | 10 | 1948356 |
10 | 11 | 5791358 |
11 | 12 | 3405859 |
12 | 13 | 2955675 |
13 | 14 | 6781393 |
14 | 15 | 14579173 |
15 | 16 | 4106329 |
16 | 17 | 1462994 |
17 | 18 | 1047291 |
18 | 19 | 2867391 |
19 | 20 | 3591366 |
20 | 21 | 5721886 |
21 | 22 | 1559866 |
22 | 23 | 639069 |
23 | 24 | 2730232 |
24 | 25 | 2718381 |
25 | 26 | 2614845 |
26 | 27 | 1960604 |
27 | 28 | 2270376 |
28 | 29 | 1105632 |
29 | 30 | 6847031 |
30 | 31 | 1894839 |
31 | 32 | 1216505 |
PREGUNTA 6
Compute the neighbors of the capital city of your country. Plot the results for each of the options.
In [ ]:
mexico_estados=gpd.read_file(link_world_map,layer='Estados de México')
mexico_estados.head()
Out[ ]:
CVEGEO | CVE_ENT | NOMGEO | CVE_CAP | NOM_CAP | COV_ | COV_ID | AREA | PERIMETER | geometry | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 01 | 01 | Aguascalientes | 10001 | Aguascalientes | 0 | 1 | 5558.673843 | 423.005983 | MULTIPOLYGON (((2469550.852 1159302.642, 24697... |
1 | 02 | 02 | Baja California | 20001 | Mexicali | 1 | 2 | 73406.158609 | 3104.096911 | MULTIPOLYGON (((1313480.513 1831458.607, 13135... |
2 | 03 | 03 | Baja California Sur | 30001 | La Paz | 2 | 3 | 71407.136932 | 5094.093396 | MULTIPOLYGON (((1694656.344 1227647.637, 16946... |
3 | 04 | 04 | Campeche | 20001 | San Francisco de Campeche | 3 | 4 | 57269.828744 | 1566.405110 | MULTIPOLYGON (((3544897.199 946994.621, 354491... |
4 | 05 | 05 | Coahuila de Zaragoza | 300001 | Saltillo | 4 | 5 | 150671.222993 | 2414.885297 | MULTIPOLYGON (((2469501.165 1978862.429, 24695... |
In [ ]:
#tras sacar una tabla con sólo cve_ent (número que identifica a cada estado) y población, se puede hacer un merge entre esas dos para añadir la variable poblacion al mexico_estados
mexico_estados = mexico_estados.merge(POPULATION, on="CVE_ENT", how="left")
mexico_estados
Out[ ]:
CVEGEO | CVE_ENT | NOMGEO | CVE_CAP | NOM_CAP | COV_ | COV_ID | AREA | PERIMETER | geometry | Poblacion | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 01 | 01 | Aguascalientes | 10001 | Aguascalientes | 0 | 1 | 5558.673843 | 423.005983 | MULTIPOLYGON (((2469550.852 1159302.642, 24697... | 1203630 |
1 | 02 | 02 | Baja California | 20001 | Mexicali | 1 | 2 | 73406.158609 | 3104.096911 | MULTIPOLYGON (((1313480.513 1831458.607, 13135... | 3263861 |
2 | 03 | 03 | Baja California Sur | 30001 | La Paz | 2 | 3 | 71407.136932 | 5094.093396 | MULTIPOLYGON (((1694656.344 1227647.637, 16946... | 939236 |
3 | 04 | 04 | Campeche | 20001 | San Francisco de Campeche | 3 | 4 | 57269.828744 | 1566.405110 | MULTIPOLYGON (((3544897.199 946994.621, 354491... | 838533 |
4 | 05 | 05 | Coahuila de Zaragoza | 300001 | Saltillo | 4 | 5 | 150671.222993 | 2414.885297 | MULTIPOLYGON (((2469501.165 1978862.429, 24695... | 5567537 |
5 | 06 | 06 | Colima | 20001 | Colima | 5 | 6 | 5754.122698 | 643.626162 | MULTIPOLYGON (((1157633.318 768573.524, 115772... | 1506780 |
6 | 07 | 07 | Chiapas | 1010001 | Tuxtla Gutiérrez | 6 | 7 | 73617.359026 | 1779.550589 | MULTIPOLYGON (((3558179.783 698365.65, 3558487... | 6032737 |
7 | 08 | 08 | Chihuahua | 190001 | Chihuahua | 7 | 8 | 246973.359987 | 3120.465637 | MULTIPOLYGON (((1915797.897 2202988.59, 191603... | 2749943 |
8 | 09 | 09 | Ciudad de México | 0 | None | 8 | 9 | 1486.183217 | 206.876266 | MULTIPOLYGON (((2800966.25 846721.791, 2801109... | 8634139 |
9 | 10 | 10 | Durango | 50001 | Victoria de Durango | 9 | 10 | 122131.204862 | 2500.703505 | MULTIPOLYGON (((2100516.1 1647595.689, 2100677... | 1948356 |
10 | 11 | 11 | Guanajuato | 150001 | Guanajuato | 10 | 11 | 30339.774998 | 1370.045497 | MULTIPOLYGON (((2565680.117 1091540.718, 25658... | 5791358 |
11 | 12 | 12 | Guerrero | 290001 | Chilpancingo de los Bravo | 11 | 12 | 63571.942090 | 1873.569518 | MULTIPOLYGON (((2723457.629 539108.729, 272355... | 3405859 |
12 | 13 | 13 | Hidalgo | 480001 | Pachuca de Soto | 12 | 13 | 20654.545738 | 1565.902248 | MULTIPOLYGON (((2862652.145 1047275.093, 28626... | 2955675 |
13 | 14 | 14 | Jalisco | 390001 | Guadalajara | 13 | 14 | 77969.772967 | 3713.218433 | MULTIPOLYGON (((2204875.697 806482.707, 220488... | 6781393 |
14 | 15 | 15 | México | 1060001 | Toluca de Lerdo | 14 | 15 | 22226.853420 | 1446.711214 | MULTIPOLYGON (((2717218.9 921748.845, 2717277.... | 14579173 |
15 | 16 | 16 | Michoacán de Ocampo | 530001 | Morelia | 15 | 16 | 58301.454665 | 2089.911396 | MULTIPOLYGON (((2498447.541 932170.571, 249850... | 4106329 |
16 | 17 | 17 | Morelos | 70001 | Cuernavaca | 16 | 17 | 4859.413834 | 456.475505 | MULTIPOLYGON (((2787908.78 793921.949, 2791085... | 1462994 |
17 | 18 | 18 | Nayarit | 170001 | Tepic | 17 | 18 | 27825.013469 | 1546.416722 | MULTIPOLYGON (((2161261.691 1008297.886, 21612... | 1047291 |
18 | 19 | 19 | Nuevo León | 390001 | Monterrey | 18 | 20 | 63558.853870 | 1912.864120 | MULTIPOLYGON (((2678077.258 1749532.053, 26785... | 2867391 |
19 | 20 | 20 | Oaxaca | 670001 | Oaxaca de Juárez | 19 | 19 | 93967.660874 | 2210.414247 | MULTIPOLYGON (((3120848.31 424036.022, 3120862... | 3591366 |
20 | 21 | 21 | Puebla | 1140001 | Heróica Puebla de Zaragoza | 20 | 21 | 34152.671159 | 2239.255512 | MULTIPOLYGON (((2930796.705 987525.496, 293080... | 5721886 |
21 | 22 | 22 | Querétaro | 140001 | Santiago de Querétaro | 21 | 22 | 11589.267541 | 874.115631 | MULTIPOLYGON (((2789578.589 1075590.981, 27900... | 1559866 |
22 | 23 | 23 | Quintana Roo | 40001 | Chetumal | 22 | 23 | 44572.370101 | 2567.752300 | MULTIPOLYGON (((4039086.131 787620.709, 403895... | 639069 |
23 | 24 | 24 | San Luis Potosà | 280001 | San Luis Potosà | 23 | 24 | 60499.957926 | 2154.145950 | MULTIPOLYGON (((2632580.368 1381778.507, 26369... | 2730232 |
24 | 25 | 25 | Sinaloa | 60001 | Culiacán Rosales | 24 | 25 | 56815.630829 | 1933.016855 | MULTIPOLYGON (((2050677.49 1245244.569, 205066... | 2718381 |
25 | 26 | 26 | Sonora | 300001 | Hermosillo | 25 | 26 | 180633.837471 | 3630.804725 | MULTIPOLYGON (((1653626.132 1730623.054, 16535... | 2614845 |
26 | 27 | 27 | Tabasco | 40001 | Villahermosa | 26 | 27 | 24701.244029 | 1576.137888 | MULTIPOLYGON (((3503138.751 772685.828, 350329... | 1960604 |
27 | 28 | 28 | Tamaulipas | 410001 | Ciudad Victoria | 27 | 28 | 79447.171579 | 2472.849778 | MULTIPOLYGON (((2723631.021 1736758.631, 27237... | 2270376 |
28 | 29 | 29 | Tlaxcala | 330001 | Tlaxcala de Xicohténcatl | 28 | 29 | 3973.387392 | 418.723227 | MULTIPOLYGON (((2912008.539 864103.572, 291203... | 1105632 |
29 | 30 | 30 | Veracruz de Ignacio de la Llave | 870001 | Xalapa-EnrÃquez | 29 | 30 | 71467.422418 | 3538.972144 | MULTIPOLYGON (((3119599.686 810246.093, 311958... | 6847031 |
30 | 31 | 31 | Yucatán | 500001 | Mérida | 30 | 31 | 39423.647982 | 1314.103386 | MULTIPOLYGON (((3511760.832 1023282.324, 35117... | 1894839 |
31 | 32 | 32 | Zacatecas | 560001 | Zacatecas | 31 | 32 | 74479.707324 | 3166.164289 | MULTIPOLYGON (((2470352.986 1453426.983, 24732... | 1216505 |
In [ ]:
mexico_estados[mexico_estados['NOMGEO'].str.contains('ciudad', case=False, na=False)] #ubicamos la capital de México
Out[ ]:
CVEGEO | CVE_ENT | NOMGEO | CVE_CAP | NOM_CAP | COV_ | COV_ID | AREA | PERIMETER | geometry | Poblacion | |
---|---|---|---|---|---|---|---|---|---|---|---|
8 | 09 | 09 | Ciudad de México | 0 | None | 8 | 9 | 1486.183217 | 206.876266 | MULTIPOLYGON (((2800966.25 846721.791, 2801109... | 8634139 |
In [ ]:
from libpysal.weights import Queen, Rook, KNN
In [ ]:
#Primera opcion para determinar los vecinos de Ciudad de Mexico
#Usamos Rook
w_rook = Rook.from_dataframe(mexico_estados,use_index=False)
/usr/local/lib/python3.11/dist-packages/libpysal/weights/contiguity.py:61: UserWarning: The weights matrix is not fully connected: There are 6 disconnected components. There is 1 island with id: 2. W.__init__(self, neighbors, ids=ids, **kw)
In [ ]:
mexico_estados.iloc[w_rook.neighbors[8] ,] #observamos los vecinos de la capital
Out[ ]:
CVEGEO | CVE_ENT | NOMGEO | CVE_CAP | NOM_CAP | COV_ | COV_ID | AREA | PERIMETER | geometry | Poblacion | |
---|---|---|---|---|---|---|---|---|---|---|---|
16 | 17 | 17 | Morelos | 70001 | Cuernavaca | 16 | 17 | 4859.413834 | 456.475505 | MULTIPOLYGON (((2787908.78 793921.949, 2791085... | 1462994 |
14 | 15 | 15 | México | 1060001 | Toluca de Lerdo | 14 | 15 | 22226.853420 | 1446.711214 | MULTIPOLYGON (((2717218.9 921748.845, 2717277.... | 14579173 |
In [ ]:
#Graficamos los vecinos de la capital
base=mexico_estados.iloc[w_rook.neighbors[8] ,].plot(facecolor="yellow",edgecolor='k')
mexico_estados.loc[mexico_estados.NOMGEO=='Ciudad de México'].plot(ax=base,facecolor="red")
Out[ ]:
<Axes: >
In [ ]:
#Segunda opcion para determinar los vecinos de Ciudad de Mexico
#Usamos Queen
w_queen = Queen.from_dataframe(mexico_estados,use_index=False)
/usr/local/lib/python3.11/dist-packages/libpysal/weights/contiguity.py:347: UserWarning: The weights matrix is not fully connected: There are 4 disconnected components. W.__init__(self, neighbors, ids=ids, **kw)
In [ ]:
mexico_estados.iloc[w_queen.neighbors[8] ,] #observamos los vecinos
Out[ ]:
CVEGEO | CVE_ENT | NOMGEO | CVE_CAP | NOM_CAP | COV_ | COV_ID | AREA | PERIMETER | geometry | Poblacion | |
---|---|---|---|---|---|---|---|---|---|---|---|
16 | 17 | 17 | Morelos | 70001 | Cuernavaca | 16 | 17 | 4859.413834 | 456.475505 | MULTIPOLYGON (((2787908.78 793921.949, 2791085... | 1462994 |
14 | 15 | 15 | México | 1060001 | Toluca de Lerdo | 14 | 15 | 22226.853420 | 1446.711214 | MULTIPOLYGON (((2717218.9 921748.845, 2717277.... | 14579173 |
In [ ]:
base=mexico_estados.iloc[w_queen.neighbors[8] ,].plot(facecolor="yellow",edgecolor='k')
mexico_estados.loc[mexico_estados.NOMGEO=='Ciudad de México'].plot(ax=base,facecolor="red") # graficamos los vecinos de la capital
Out[ ]:
<Axes: >
In [ ]:
#Tercera opcion para determinar los vecinos de Ciudad de Mexico
#Usamos KNN
w_knn8 = KNN.from_dataframe(mexico_estados, k=8)
In [ ]:
w_knn8.neighbors[8] # los 8 vecinos más cercanos a la capital de Mexico
Out[ ]:
[np.int64(14), np.int64(16), np.int64(28), np.int64(20), np.int64(12), np.int64(21), np.int64(11), np.int64(10)]
In [ ]:
base=mexico_estados.iloc[w_knn8.neighbors[8] ,].plot(facecolor="yellow",edgecolor='k')
mexico_estados.loc[mexico_estados.NOMGEO=='Ciudad de México'].plot(ax=base,facecolor="red")
Out[ ]:
<Axes: >
PREGUNTA 7
In [ ]:
#a) Compute the Moran's coefficient for one of your three numeric variables.
In [ ]:
#Se obtiene la matriz de peso para knn8, sabiendo que 1 significa que son vecinos.
matriz_peso=pd.DataFrame(*w_knn8.full())
matriz_peso.head()
Out[ ]:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 |
1 | 0.0 | 0.0 | 1.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 1.0 | ... | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 |
2 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 1.0 | ... | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 |
3 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | ... | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 1.0 | 1.0 | 1.0 | 0.0 |
4 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 1.0 | ... | 0.0 | 1.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 |
5 rows × 32 columns
In [ ]:
#normalizar para moran
w_knn8.transform = 'R'
#resultado de normalizar
pd.DataFrame(*w_knn8.full()).sum(axis=1).head()
Out[ ]:
0 | |
---|---|
0 | 1.0 |
1 | 1.0 |
2 | 1.0 |
3 | 1.0 |
4 | 1.0 |
In [ ]:
!pip install esda
Requirement already satisfied: esda in /usr/local/lib/python3.11/dist-packages (2.7.0) Requirement already satisfied: geopandas>=0.12 in /usr/local/lib/python3.11/dist-packages (from esda) (1.0.1) Requirement already satisfied: libpysal>=4.12 in /usr/local/lib/python3.11/dist-packages (from esda) (4.13.0) Requirement already satisfied: numpy>=1.24 in /usr/local/lib/python3.11/dist-packages (from esda) (2.0.2) Requirement already satisfied: pandas>1.5 in /usr/local/lib/python3.11/dist-packages (from esda) (2.2.2) Requirement already satisfied: scikit-learn>=1.2 in /usr/local/lib/python3.11/dist-packages (from esda) (1.6.1) Requirement already satisfied: scipy>=1.9 in /usr/local/lib/python3.11/dist-packages (from esda) (1.15.3) Requirement already satisfied: shapely>=2.0 in /usr/local/lib/python3.11/dist-packages (from esda) (2.1.1) Requirement already satisfied: pyogrio>=0.7.2 in /usr/local/lib/python3.11/dist-packages (from geopandas>=0.12->esda) (0.11.0) Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from geopandas>=0.12->esda) (24.2) Requirement already satisfied: pyproj>=3.3.0 in /usr/local/lib/python3.11/dist-packages (from geopandas>=0.12->esda) (3.7.1) Requirement already satisfied: beautifulsoup4>=4.10 in /usr/local/lib/python3.11/dist-packages (from libpysal>=4.12->esda) (4.13.4) Requirement already satisfied: platformdirs>=2.0.2 in /usr/local/lib/python3.11/dist-packages (from libpysal>=4.12->esda) (4.3.8) Requirement already satisfied: requests>=2.27 in /usr/local/lib/python3.11/dist-packages (from libpysal>=4.12->esda) (2.32.3) Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from pandas>1.5->esda) (2.9.0.post0) Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas>1.5->esda) (2025.2) Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>1.5->esda) (2025.2) Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn>=1.2->esda) (1.5.1) Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn>=1.2->esda) (3.6.0) Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.11/dist-packages (from beautifulsoup4>=4.10->libpysal>=4.12->esda) (2.7) Requirement already satisfied: typing-extensions>=4.0.0 in /usr/local/lib/python3.11/dist-packages (from beautifulsoup4>=4.10->libpysal>=4.12->esda) (4.14.0) Requirement already satisfied: certifi in /usr/local/lib/python3.11/dist-packages (from pyogrio>=0.7.2->geopandas>=0.12->esda) (2025.6.15) Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/dist-packages (from python-dateutil>=2.8.2->pandas>1.5->esda) (1.17.0) Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from requests>=2.27->libpysal>=4.12->esda) (3.4.2) Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests>=2.27->libpysal>=4.12->esda) (3.10) Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/dist-packages (from requests>=2.27->libpysal>=4.12->esda) (2.4.0)
In [ ]:
#Usando la variable numerica area para sacar el moran
from esda.moran import Moran
moranAREA = Moran(mexico_estados['AREA'], w_knn8)
moranAREA.I,moranAREA.p_sim
Out[ ]:
(np.float64(0.32671222864047306), np.float64(0.001))
In [ ]:
#el primer valor mide cuanta correlación hay:
#"Si Moran’s I > 0 → los valores similares están agrupados (por ejemplo, zonas de alto IDH cerca de otras de alto IDH).
#Si Moran’s I ≈ 0 → los valores están distribuidos aleatoriamente.
#Si Moran’s I < 0 → los valores diferentes están cerca unos de otros (dispersión)."
#el segundo si la correlación es real o por azar: "Menor a 0.05 significa sí hay autocorrelación espacial significativa. Mayor, es que probablemente es el azar"
#Entonces, como MoranI es positivo y moderadamente alto, los estados con valores similares de AREA tienden a estar cerca unos de otros.
#Además, como p es muy bajo, es muy poco probable que esa tendencia sea azar, por lo que es estadísticamente significativo.
In [ ]:
#b)Make a scatter plot for each variable.
In [ ]:
!pip install splot
Requirement already satisfied: splot in /usr/local/lib/python3.11/dist-packages (1.1.7) Requirement already satisfied: esda in /usr/local/lib/python3.11/dist-packages (from splot) (2.7.0) Requirement already satisfied: geopandas>=0.9.0 in /usr/local/lib/python3.11/dist-packages (from splot) (1.0.1) Requirement already satisfied: giddy in /usr/local/lib/python3.11/dist-packages (from splot) (2.3.6) Requirement already satisfied: libpysal in /usr/local/lib/python3.11/dist-packages (from splot) (4.13.0) Requirement already satisfied: mapclassify in /usr/local/lib/python3.11/dist-packages (from splot) (2.9.0) Requirement already satisfied: matplotlib>=3.3.3 in /usr/local/lib/python3.11/dist-packages (from splot) (3.10.0) Requirement already satisfied: numpy in /usr/local/lib/python3.11/dist-packages (from splot) (2.0.2) Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from splot) (24.2) Requirement already satisfied: seaborn>=0.11.0 in /usr/local/lib/python3.11/dist-packages (from splot) (0.13.2) Requirement already satisfied: spreg in /usr/local/lib/python3.11/dist-packages (from splot) (1.8.3) Requirement already satisfied: pyogrio>=0.7.2 in /usr/local/lib/python3.11/dist-packages (from geopandas>=0.9.0->splot) (0.11.0) Requirement already satisfied: pandas>=1.4.0 in /usr/local/lib/python3.11/dist-packages (from geopandas>=0.9.0->splot) (2.2.2) Requirement already satisfied: pyproj>=3.3.0 in /usr/local/lib/python3.11/dist-packages (from geopandas>=0.9.0->splot) (3.7.1) Requirement already satisfied: shapely>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from geopandas>=0.9.0->splot) (2.1.1) Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.3.3->splot) (1.3.2) Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.3.3->splot) (0.12.1) Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.3.3->splot) (4.58.4) Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.3.3->splot) (1.4.8) Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.3.3->splot) (11.2.1) Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.3.3->splot) (3.2.3) Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.3.3->splot) (2.9.0.post0) Requirement already satisfied: scikit-learn>=1.2 in /usr/local/lib/python3.11/dist-packages (from esda->splot) (1.6.1) Requirement already satisfied: scipy>=1.9 in /usr/local/lib/python3.11/dist-packages (from esda->splot) (1.15.3) Requirement already satisfied: beautifulsoup4>=4.10 in /usr/local/lib/python3.11/dist-packages (from libpysal->splot) (4.13.4) Requirement already satisfied: platformdirs>=2.0.2 in /usr/local/lib/python3.11/dist-packages (from libpysal->splot) (4.3.8) Requirement already satisfied: requests>=2.27 in /usr/local/lib/python3.11/dist-packages (from libpysal->splot) (2.32.3) Requirement already satisfied: quantecon>=0.7 in /usr/local/lib/python3.11/dist-packages (from giddy->splot) (0.8.1) Requirement already satisfied: networkx>=3.2 in /usr/local/lib/python3.11/dist-packages (from mapclassify->splot) (3.5) Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.11/dist-packages (from beautifulsoup4>=4.10->libpysal->splot) (2.7) Requirement already satisfied: typing-extensions>=4.0.0 in /usr/local/lib/python3.11/dist-packages (from beautifulsoup4>=4.10->libpysal->splot) (4.14.0) Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.4.0->geopandas>=0.9.0->splot) (2025.2) Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.4.0->geopandas>=0.9.0->splot) (2025.2) Requirement already satisfied: certifi in /usr/local/lib/python3.11/dist-packages (from pyogrio>=0.7.2->geopandas>=0.9.0->splot) (2025.6.15) Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/dist-packages (from python-dateutil>=2.7->matplotlib>=3.3.3->splot) (1.17.0) Requirement already satisfied: numba>=0.49.0 in /usr/local/lib/python3.11/dist-packages (from quantecon>=0.7->giddy->splot) (0.60.0) Requirement already satisfied: sympy in /usr/local/lib/python3.11/dist-packages (from quantecon>=0.7->giddy->splot) (1.13.1) Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from requests>=2.27->libpysal->splot) (3.4.2) Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests>=2.27->libpysal->splot) (3.10) Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/dist-packages (from requests>=2.27->libpysal->splot) (2.4.0) Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn>=1.2->esda->splot) (1.5.1) Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn>=1.2->esda->splot) (3.6.0) Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.11/dist-packages (from numba>=0.49.0->quantecon>=0.7->giddy->splot) (0.43.0) Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from sympy->quantecon>=0.7->giddy->splot) (1.3.0)
In [ ]:
#el scatter plot para area, eje x valores de area estandarizados, eje y promedio de area de los vecinos osea lag espacial:
from splot.esda import moran_scatterplot
fig, ax = moran_scatterplot(moranAREA, aspect_equal=True)
ax.set_xlabel('AREA_std')
ax.set_ylabel('SpatialLag_AREA_std');
In [ ]:
#Para perimetro:
#Moran
moranPERIMETER = Moran(mexico_estados['PERIMETER'], w_knn8)
moranPERIMETER.I,moranPERIMETER.p_sim
#Entonces, como MoranI es positivo y moderadamente alto, los estados con valores similares de PERIMETRO tienden a estar cerca unos de otros.
#Además, como p es muy bajo, es muy poco probable que esa tendencia sea azar, por lo que es estadísticamente significativo.
Out[ ]:
(np.float64(0.20973250574526764), np.float64(0.003))
In [ ]:
#Scatter plot de perimetro, eje x valores de perimetro estandarizados, eje y promedio de perimetro de los vecinos osea lag espacial:
fig, ax = moran_scatterplot(moranPERIMETER, aspect_equal=True)
ax.set_xlabel('PERIMETER_std')
ax.set_ylabel('SpatialLag_PERIMETER_std');
In [ ]:
#Para poblacion:
#Moran
moranPOPULATION = Moran(mexico_estados['Poblacion'], w_knn8)
moranPOPULATION.I,moranPOPULATION.p_sim
#Entonces, como MoranI es positivo y muy cercano a 0, los estados con valores similares de POBLACIÓN no tienen un patrón fuerte de agrupamiento ni de dispersión.
#Además, como p es muy alto, no es estadísticamente significativo y se puede concluir que no hay un agrupamiento espacial real, el patrón puede explicarse con azar.
Out[ ]:
(np.float64(0.037916741106930475), np.float64(0.138))
In [ ]:
#Scatter plot de poblacion, eje x valores de poblacion estandarizados, eje y promedio de poblacion de los vecinos osea lag espacial:
fig, ax = moran_scatterplot(moranPOPULATION, aspect_equal=True)
ax.set_xlabel('POPULATION_std')
ax.set_ylabel('SpatialLag_POPULATION_std');
PREGUNTA 8
In [ ]:
#a)Compute the Local Moran for the variables in your data that have significant spatial correlation.
In [ ]:
#Para este ejercicio solo debemos trabajar con AREA y PERIMETER.
In [ ]:
#LISA para cada estado usando area y perimetro
from esda.moran import Moran_Local
lisaAREA = Moran_Local(y=mexico_estados['AREA'], w=w_knn8,seed=69)
lisaPERIMETER = Moran_Local(y=mexico_estados['PERIMETER'], w=w_knn8,seed=69)
In [ ]:
#Si el punto no es gris entonces el LISA es significativo
#para area
fig, ax = moran_scatterplot(lisaAREA,p=0.05)
ax.set_xlabel('AREA_std')
ax.set_ylabel('SpatialLag_AREA_std');
In [ ]:
#Si el punto no es gris entonces el LISA es significativo
#para perimetro
fig, ax = moran_scatterplot(lisaPERIMETER,p=0.05)
ax.set_xlabel('PERIMETER_std')
ax.set_ylabel('SpatialLag_PERIMETERstd');
In [ ]:
#b)Create a new column for each of those variables, with a label ('0 no_sig', '1 hotSpot', '2 coldOutlier', '3 coldSpot', '4 hotOutlier').
In [ ]:
#Observamos resultados de cuadrante y significancia "p"
#Para area
lisaAREA.q, lisaAREA.p_sim
Out[ ]:
(array([3, 1, 1, 3, 1, 3, 4, 1, 3, 1, 3, 4, 3, 4, 3, 3, 3, 3, 1, 4, 3, 3, 3, 3, 2, 1, 3, 4, 3, 4, 3, 4]), array([0.108, 0.001, 0.001, 0.232, 0.045, 0.128, 0.19 , 0.002, 0.001, 0.055, 0.012, 0.001, 0.001, 0.037, 0.001, 0.003, 0.004, 0.345, 0.365, 0.037, 0.031, 0.002, 0.261, 0.07 , 0.003, 0.002, 0.313, 0.346, 0.004, 0.002, 0.284, 0.295]))
In [ ]:
#Para perimetro
lisaPERIMETER.q, lisaPERIMETER.p_sim
Out[ ]:
(array([3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 3, 3, 3, 4, 3, 4, 3, 3, 3, 4, 4, 3, 4, 4, 2, 1, 3, 4, 3, 4, 3, 4]), array([0.34 , 0.003, 0.004, 0.405, 0.27 , 0.357, 0.382, 0.009, 0.001, 0.219, 0.071, 0.001, 0.001, 0.081, 0.001, 0.01 , 0.041, 0.449, 0.38 , 0.066, 0.047, 0.003, 0.298, 0.122, 0.02 , 0.004, 0.406, 0.211, 0.045, 0.004, 0.425, 0.301]))
In [ ]:
#Cuadrante: 1 HH, 2 LH, 3 LL, 4 HL
#Cuadrante I (HH): hotspot
#Cuadrante II (LH): cold outlier
#Cuadrante III (LL): coldspot
#Cuadrante IV (HL): hot outlier
pd.Series(lisaAREA.q).value_counts()
Out[ ]:
count | |
---|---|
3 | 17 |
1 | 7 |
4 | 7 |
2 | 1 |
In [ ]:
#Cuadrante: 1 HH, 2 LH, 3 LL, 4 HL
#Cuadrante I (HH): hotspot
#Cuadrante II (LH): cold outlier
#Cuadrante III (LL): coldspot
#Cuadrante IV (HL): hot outlier
pd.Series(lisaPERIMETER.q).value_counts()
Out[ ]:
count | |
---|---|
3 | 16 |
4 | 9 |
1 | 6 |
2 | 1 |
In [ ]:
#Antes de usar esa información tenemos que manualmente seleccionarla pues como se ve hay "p" muy altos osea que no son estadísticamente significativos
#Para area
mexico_estados['AREA_quadrant']=[l if p <0.05 else 0 for l,p in zip(lisaAREA.q,lisaAREA.p_sim) ]
mexico_estados['AREA_quadrant'].value_counts()
Out[ ]:
count | |
---|---|
AREA_quadrant | |
0 | 13 |
3 | 9 |
1 | 5 |
4 | 4 |
2 | 1 |
In [ ]:
#Para perimetro
mexico_estados['PERIMETER_quadrant']=[l if p <0.05 else 0 for l,p in zip(lisaPERIMETER.q,lisaPERIMETER.p_sim) ]
mexico_estados['PERIMETER_quadrant'].value_counts()
Out[ ]:
count | |
---|---|
PERIMETER_quadrant | |
0 | 17 |
3 | 7 |
1 | 4 |
4 | 3 |
2 | 1 |
In [ ]:
#Asignandole un nombre
labels = [ '0 no_sig', '1 hotSpot', '2 coldOutlier', '3 coldSpot', '4 hotOutlier']
#Para area
mexico_estados['AREA_quadrant_names']=[labels[i] for i in mexico_estados['AREA_quadrant']]
mexico_estados['AREA_quadrant_names'].value_counts()
Out[ ]:
count | |
---|---|
AREA_quadrant_names | |
0 no_sig | 13 |
3 coldSpot | 9 |
1 hotSpot | 5 |
4 hotOutlier | 4 |
2 coldOutlier | 1 |
In [ ]:
#Para perimetro
mexico_estados['PERIMETER_quadrant_names']=[labels[i] for i in mexico_estados['PERIMETER_quadrant']]
mexico_estados['PERIMETER_quadrant_names'].value_counts()
Out[ ]:
count | |
---|---|
PERIMETER_quadrant_names | |
0 no_sig | 17 |
3 coldSpot | 7 |
1 hotSpot | 4 |
4 hotOutlier | 3 |
2 coldOutlier | 1 |
In [ ]:
#c)Prepare a map for each of the variables analyzed, showing the spots and outliers.
In [ ]:
!pip install matplotlib
Requirement already satisfied: matplotlib in /usr/local/lib/python3.11/dist-packages (3.10.0) Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (1.3.2) Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (0.12.1) Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (4.58.4) Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (1.4.8) Requirement already satisfied: numpy>=1.23 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (2.0.2) Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (24.2) Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (11.2.1) Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (3.2.3) Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (2.9.0.post0) Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/dist-packages (from python-dateutil>=2.7->matplotlib) (1.17.0)
In [ ]:
#Para area
from matplotlib import colors
import matplotlib.pyplot as plt
soyelmapa = colors.ListedColormap([ 'white', 'orange', 'cyan', 'blue','red'])
f, ax = plt.subplots(1, figsize=(12,12))
plt.title('Spots and Outliers')
mexico_estados.plot(column='AREA_quadrant_names',
categorical=True,
cmap=soyelmapa,
linewidth=0.1,
edgecolor='k',
legend=True,
legend_kwds={'loc': 'center left',
'bbox_to_anchor': (0.7, 0.6)},
ax=ax)
ax.set_axis_off()
plt.show()
In [ ]:
#Para perimetro
from matplotlib import colors
import matplotlib.pyplot as plt
soyelmapa = colors.ListedColormap([ 'white', 'orange', 'cyan', 'blue','red'])
f, ax = plt.subplots(1, figsize=(12,12))
plt.title('Spots and Outliers')
mexico_estados.plot(column='PERIMETER_quadrant_names',
categorical=True,
cmap=soyelmapa,
linewidth=0.1,
edgecolor='k',
legend=True,
legend_kwds={'loc': 'center left',
'bbox_to_anchor': (0.7, 0.6)},
ax=ax)
ax.set_axis_off()
plt.show()
PREGUNTA 9
In [ ]:
#Use your three variables to carry out the cluster/regional analysis.
In [ ]:
!pip install seaborn
Requirement already satisfied: seaborn in /usr/local/lib/python3.11/dist-packages (0.13.2) Requirement already satisfied: numpy!=1.24.0,>=1.20 in /usr/local/lib/python3.11/dist-packages (from seaborn) (2.0.2) Requirement already satisfied: pandas>=1.2 in /usr/local/lib/python3.11/dist-packages (from seaborn) (2.2.2) Requirement already satisfied: matplotlib!=3.6.1,>=3.4 in /usr/local/lib/python3.11/dist-packages (from seaborn) (3.10.0) Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.3.2) Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (0.12.1) Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (4.58.4) Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.4.8) Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (24.2) Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (11.2.1) Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (3.2.3) Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (2.9.0.post0) Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.2->seaborn) (2025.2) Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.2->seaborn) (2025.2) Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/dist-packages (from python-dateutil>=2.7->matplotlib!=3.6.1,>=3.4->seaborn) (1.17.0)
In [ ]:
import seaborn as sea
selected_variables = ['AREA', 'PERIMETER', 'Poblacion']
#distribución
sea.boxplot(mexico_estados[selected_variables])
Out[ ]:
<Axes: >
In [ ]:
#Observar la monotonía/correlación
mexico_estados[selected_variables].corr()
Out[ ]:
AREA | PERIMETER | Poblacion | |
---|---|---|---|
AREA | 1.000000 | 0.63886 | -0.029406 |
PERIMETER | 0.638860 | 1.00000 | -0.014820 |
Poblacion | -0.029406 | -0.01482 | 1.000000 |
In [ ]:
sea.pairplot(
mexico_estados[selected_variables], kind="reg", diag_kind="kde"
)
Out[ ]:
<seaborn.axisgrid.PairGrid at 0x7b2ab8dcd790>
In [ ]:
#Estandarizar:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
normalized_data = scaler.fit_transform(mexico_estados[selected_variables])
sea.displot(pd.melt(pd.DataFrame(normalized_data,columns=selected_variables)),
x="value", hue="variable",kind="kde",
log_scale=(False,False))
Out[ ]:
<seaborn.axisgrid.FacetGrid at 0x7b2ab7899050>
In [ ]:
#nuevos nombres
selected_variables_new_std=[s+'_std' for s in selected_variables]
#nueva columna
mexico_estados[selected_variables_new_std]=normalized_data
In [ ]:
#Resultado:
selected_variables_new_std = ['AREA_std',
'PERIMETER_std',
'Poblacion_std']
sea.pairplot(
mexico_estados[selected_variables_new_std], kind="reg", diag_kind="kde"
)
Out[ ]:
<seaborn.axisgrid.PairGrid at 0x7b2ab77e9d90>
In [ ]:
#CONVENTIONAL CLUSTERING
#Se usan las 3 variables para crear un cluster de estados, se exploran cuantos clusteres pueden ser creados
from scipy.cluster import hierarchy as hc
Z = hc.linkage(mexico_estados[selected_variables_new_std], 'ward')
# calculate full dendrogram
plt.figure(figsize=(25, 10))
plt.title('Hierarchical Clustering Dendrogram')
plt.xlabel('cases')
plt.ylabel('distance')
hc.dendrogram(
Z,
leaf_rotation=90., # rotates the x axis labels
leaf_font_size=1, # font size for the x axis labels
)
plt.show()
In [ ]:
#A pesar que el dendograma sugiere 3 clusteres vamos a solicitar 4. Se intentó con 6 y los clusteres quedaron muy desiguales (uno con 16 y otro con 1).
#Se podía solicitar 5 pero para la siguiente parte es conveniente solicitar 4.
#se usa el enfoque aglomerativo
from sklearn.cluster import AgglomerativeClustering as agnes
import numpy as np
np.random.seed(69)
model = agnes(linkage="ward", n_clusters=4).fit(mexico_estados[selected_variables_new_std])
#se crea una columna nueva
mexico_estados["hc_ag4"] = model.labels_
In [ ]:
#observamos cuantos elementos hay en cada cluster
mexico_estados["hc_ag4"].value_counts()
#bien distribuido
Out[ ]:
count | |
---|---|
hc_ag4 | |
1 | 16 |
0 | 6 |
3 | 5 |
2 | 5 |
In [ ]:
#el patrón con el que se formaron los clusters
mexico_estados.groupby("hc_ag4")[selected_variables_new_std].mean()
Out[ ]:
AREA_std | PERIMETER_std | Poblacion_std | |
---|---|---|---|
hc_ag4 | |||
0 | 1.363325 | 1.425511 | 0.278773 |
1 | -0.018929 | 0.062496 | -0.390475 |
2 | -0.541886 | -0.568218 | 1.646611 |
3 | -1.033532 | -1.342383 | -0.731618 |
In [ ]:
#visualización de los 4 grupos de estados con comportamiento similar en las 3 variables
f, ax = plt.subplots(1, figsize=(9, 9))
mexico_estados.plot(
column="hc_ag4", categorical=True, legend=True, linewidth=0, ax=ax
)
ax.set_axis_off()
plt.show()
In [ ]:
#SPATIAL CLUSTERING
#usamos knn porque se sabe que mexico tiene islas por lo que usar un enfoque queen o rook sería poco eficaz
#Se probó con 5 clusters pero la distribución era muy desigual
model_wknn8 = agnes(linkage="ward",
n_clusters=4,
connectivity=w_knn8.sparse).fit(mexico_estados[selected_variables_new_std])
mexico_estados["hc_ag4_wknn8"] = model_wknn8.labels_
In [ ]:
#mapear
f, ax = plt.subplots(1, figsize=(10, 12))
mexico_estados.plot(
column="hc_ag4_wknn8",
categorical=True,
legend=True,
linewidth=0,
ax=ax,
)
ax.set_axis_off()
plt.show()
In [ ]:
#ANÁLISIS IPQ
from esda import shape as shapestats
results={}
for cluster_type in ("hc_ag4_wknn8", "hc_ag4"):
# dissolve
regions = mexico_estados[[cluster_type, "geometry"]].to_crs(6362).dissolve(by=cluster_type)
#sacar el ipq
ipqs = shapestats.isoperimetric_quotient(regions)
#DF
result = {cluster_type:ipqs}
results.update(result)
pd.DataFrame(results)
Out[ ]:
hc_ag4_wknn8 | hc_ag4 | |
---|---|---|
0 | 0.057036 | 0.027195 |
1 | 0.046338 | 0.025355 |
2 | 0.172409 | 0.047188 |
3 | 0.050292 | 0.050292 |
In [ ]:
#ANÁLISIS CHR
from esda import shape as shapestats
results={}
for cluster_type in ("hc_ag4_wknn8", "hc_ag4"):
#dissolve
regions = mexico_estados[[cluster_type, "geometry"]].to_crs(6362).dissolve(by=cluster_type)
#sacar el convex hull
chullr = shapestats.convex_hull_ratio(regions)
#DF
result = {cluster_type:chullr}
results.update(result)
pd.DataFrame(results)
Out[ ]:
hc_ag4_wknn8 | hc_ag4 | |
---|---|---|
0 | 0.511516 | 0.371706 |
1 | 0.419422 | 0.336802 |
2 | 0.777407 | 0.379864 |
3 | 0.069869 | 0.069869 |
In [ ]:
#En ambos casos el conventional clustering es mejor
In [ ]:
#ANÁLISIS ESTADÍSTICA
from sklearn import metrics
fit_scores = []
for cluster_type in ("hc_ag4_wknn8", "hc_ag4"):
#calculo de CH score
ch_score = metrics.calinski_harabasz_score(
mexico_estados[selected_variables_new_std],
mexico_estados[cluster_type],
)
#calculo sil score
sil_score = metrics.silhouette_score(
mexico_estados[selected_variables_new_std],
mexico_estados[cluster_type],
)
fit_scores.append((cluster_type, ch_score,sil_score))
#DF
pd.DataFrame(
fit_scores, columns=["cluster type", "CH score", "SIL score"]
).set_index("cluster type")
Out[ ]:
CH score | SIL score | |
---|---|---|
cluster type | ||
hc_ag4_wknn8 | 16.157498 | 0.320344 |
hc_ag4 | 15.545123 | 0.320954 |
In [ ]:
#Aquí el Spatian clustering es mejor pues tiene más CH y tienen similar SIL
PREGUNTA 10
In [ ]:
#Se analizará cómo varía la población respecto al área y perímetro
In [ ]:
!pip install pysal
Requirement already satisfied: pysal in /usr/local/lib/python3.11/dist-packages (25.1) Requirement already satisfied: beautifulsoup4>=4.10 in /usr/local/lib/python3.11/dist-packages (from pysal) (4.13.4) Requirement already satisfied: geopandas>=0.10.0 in /usr/local/lib/python3.11/dist-packages (from pysal) (1.0.1) Requirement already satisfied: numpy>=1.22 in /usr/local/lib/python3.11/dist-packages (from pysal) (2.0.2) Requirement already satisfied: packaging>=22 in /usr/local/lib/python3.11/dist-packages (from pysal) (24.2) Requirement already satisfied: pandas>=1.4 in /usr/local/lib/python3.11/dist-packages (from pysal) (2.2.2) Requirement already satisfied: platformdirs>=2.0.2 in /usr/local/lib/python3.11/dist-packages (from pysal) (4.3.8) Requirement already satisfied: requests>=2.27 in /usr/local/lib/python3.11/dist-packages (from pysal) (2.32.3) Requirement already satisfied: scipy>=1.8 in /usr/local/lib/python3.11/dist-packages (from pysal) (1.15.3) Requirement already satisfied: shapely>=2.0.1 in /usr/local/lib/python3.11/dist-packages (from pysal) (2.1.1) Requirement already satisfied: scikit-learn>=1.1 in /usr/local/lib/python3.11/dist-packages (from pysal) (1.6.1) Requirement already satisfied: libpysal>=4.12.1 in /usr/local/lib/python3.11/dist-packages (from pysal) (4.13.0) Requirement already satisfied: access>=1.1.9 in /usr/local/lib/python3.11/dist-packages (from pysal) (1.1.9) Requirement already satisfied: esda>=2.6.0 in /usr/local/lib/python3.11/dist-packages (from pysal) (2.7.0) Requirement already satisfied: giddy>=2.3.6 in /usr/local/lib/python3.11/dist-packages (from pysal) (2.3.6) Requirement already satisfied: inequality>=1.1.1 in /usr/local/lib/python3.11/dist-packages (from pysal) (1.1.1) Requirement already satisfied: pointpats>=2.5.1 in /usr/local/lib/python3.11/dist-packages (from pysal) (2.5.1) Requirement already satisfied: segregation>=2.5.1 in /usr/local/lib/python3.11/dist-packages (from pysal) (2.5.2) Requirement already satisfied: spaghetti>=1.7.6 in /usr/local/lib/python3.11/dist-packages (from pysal) (1.7.6) Requirement already satisfied: mgwr>=2.2.1 in /usr/local/lib/python3.11/dist-packages (from pysal) (2.2.1) Requirement already satisfied: momepy>=0.9.1 in /usr/local/lib/python3.11/dist-packages (from pysal) (0.10.0) Requirement already satisfied: spglm>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from pysal) (1.1.0) Requirement already satisfied: spint>=1.0.7 in /usr/local/lib/python3.11/dist-packages (from pysal) (1.0.7) Requirement already satisfied: spreg>=1.8.1 in /usr/local/lib/python3.11/dist-packages (from pysal) (1.8.3) Requirement already satisfied: tobler>=0.12.1 in /usr/local/lib/python3.11/dist-packages (from pysal) (0.12.1) Requirement already satisfied: mapclassify>=2.8.1 in /usr/local/lib/python3.11/dist-packages (from pysal) (2.9.0) Requirement already satisfied: splot>=1.1.7 in /usr/local/lib/python3.11/dist-packages (from pysal) (1.1.7) Requirement already satisfied: spopt>=0.6.1 in /usr/local/lib/python3.11/dist-packages (from pysal) (0.6.1) Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.11/dist-packages (from beautifulsoup4>=4.10->pysal) (2.7) Requirement already satisfied: typing-extensions>=4.0.0 in /usr/local/lib/python3.11/dist-packages (from beautifulsoup4>=4.10->pysal) (4.14.0) Requirement already satisfied: pyogrio>=0.7.2 in /usr/local/lib/python3.11/dist-packages (from geopandas>=0.10.0->pysal) (0.11.0) Requirement already satisfied: pyproj>=3.3.0 in /usr/local/lib/python3.11/dist-packages (from geopandas>=0.10.0->pysal) (3.7.1) Requirement already satisfied: quantecon>=0.7 in /usr/local/lib/python3.11/dist-packages (from giddy>=2.3.6->pysal) (0.8.1) Requirement already satisfied: matplotlib>=3.6 in /usr/local/lib/python3.11/dist-packages (from inequality>=1.1.1->pysal) (3.10.0) Requirement already satisfied: networkx>=3.2 in /usr/local/lib/python3.11/dist-packages (from mapclassify>=2.8.1->pysal) (3.5) Requirement already satisfied: tqdm>=4.65 in /usr/local/lib/python3.11/dist-packages (from momepy>=0.9.1->pysal) (4.67.1) Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.4->pysal) (2.9.0.post0) Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.4->pysal) (2025.2) Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.4->pysal) (2025.2) Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from requests>=2.27->pysal) (3.4.2) Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests>=2.27->pysal) (3.10) Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/dist-packages (from requests>=2.27->pysal) (2.4.0) Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/dist-packages (from requests>=2.27->pysal) (2025.6.15) Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn>=1.1->pysal) (1.5.1) Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn>=1.1->pysal) (3.6.0) Requirement already satisfied: deprecation in /usr/local/lib/python3.11/dist-packages (from segregation>=2.5.1->pysal) (2.1.0) Requirement already satisfied: seaborn in /usr/local/lib/python3.11/dist-packages (from segregation>=2.5.1->pysal) (0.13.2) Requirement already satisfied: numba in /usr/local/lib/python3.11/dist-packages (from segregation>=2.5.1->pysal) (0.60.0) Requirement already satisfied: rtree>=1.0 in /usr/local/lib/python3.11/dist-packages (from spaghetti>=1.7.6->pysal) (1.4.0) Requirement already satisfied: pulp>=2.7 in /usr/local/lib/python3.11/dist-packages (from spopt>=0.6.1->pysal) (3.2.1) Requirement already satisfied: rasterio in /usr/local/lib/python3.11/dist-packages (from tobler>=0.12.1->pysal) (1.4.3) Requirement already satisfied: statsmodels in /usr/local/lib/python3.11/dist-packages (from tobler>=0.12.1->pysal) (0.14.4) Requirement already satisfied: rasterstats in /usr/local/lib/python3.11/dist-packages (from tobler>=0.12.1->pysal) (0.20.0) Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.6->inequality>=1.1.1->pysal) (1.3.2) Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.6->inequality>=1.1.1->pysal) (0.12.1) Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.6->inequality>=1.1.1->pysal) (4.58.4) Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.6->inequality>=1.1.1->pysal) (1.4.8) Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.6->inequality>=1.1.1->pysal) (11.2.1) Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.6->inequality>=1.1.1->pysal) (3.2.3) Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/dist-packages (from python-dateutil>=2.8.2->pandas>=1.4->pysal) (1.17.0) Requirement already satisfied: sympy in /usr/local/lib/python3.11/dist-packages (from quantecon>=0.7->giddy>=2.3.6->pysal) (1.13.1) Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.11/dist-packages (from numba->segregation>=2.5.1->pysal) (0.43.0) Requirement already satisfied: affine in /usr/local/lib/python3.11/dist-packages (from rasterio->tobler>=0.12.1->pysal) (2.4.0) Requirement already satisfied: attrs in /usr/local/lib/python3.11/dist-packages (from rasterio->tobler>=0.12.1->pysal) (25.3.0) Requirement already satisfied: click>=4.0 in /usr/local/lib/python3.11/dist-packages (from rasterio->tobler>=0.12.1->pysal) (8.2.1) Requirement already satisfied: cligj>=0.5 in /usr/local/lib/python3.11/dist-packages (from rasterio->tobler>=0.12.1->pysal) (0.7.2) Requirement already satisfied: click-plugins in /usr/local/lib/python3.11/dist-packages (from rasterio->tobler>=0.12.1->pysal) (1.1.1.2) Requirement already satisfied: fiona in /usr/local/lib/python3.11/dist-packages (from rasterstats->tobler>=0.12.1->pysal) (1.10.1) Requirement already satisfied: simplejson in /usr/local/lib/python3.11/dist-packages (from rasterstats->tobler>=0.12.1->pysal) (3.20.1) Requirement already satisfied: patsy>=0.5.6 in /usr/local/lib/python3.11/dist-packages (from statsmodels->tobler>=0.12.1->pysal) (1.0.1) Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from sympy->quantecon>=0.7->giddy>=2.3.6->pysal) (1.3.0)
In [ ]:
#Regresión convencional
from pysal.model import spreg
dep_var_name=['Poblacion']
ind_vars_names=['AREA','PERIMETER']
labels=['Population','Area', 'Perimeter']
ols_model = spreg.OLS(
#variable dependiente
mexico_estados[dep_var_name].values,
#variables independientes
mexico_estados[ind_vars_names].values,
# Dependent variable name
name_y=labels[0],
# Independent variable name
name_x=labels[1:],
name_ds='mexico_estados')
print(ols_model.summary)
REGRESSION RESULTS ------------------ SUMMARY OF OUTPUT: ORDINARY LEAST SQUARES ----------------------------------------- Data set :mexico_estados Weights matrix : None Dependent Variable : Population Number of Observations: 32 Mean dependent var :3454776.4688 Number of Variables : 3 S.D. dependent var :2898219.5028 Degrees of Freedom : 29 R-squared : 0.0009 Adjusted R-squared : -0.0680 Sum squared residual: 2.60158e+14 F-statistic : 0.0129 Sigma-square :8970961568432.477 Prob(F-statistic) : 0.9872 S.E. of regression : 2995156.351 Log likelihood : -521.031 Sigma-square ML :8129933921391.932 Akaike info criterion : 1048.062 S.E of regression ML:2851303.8985 Schwarz criterion : 1052.460 ------------------------------------------------------------------------------------ Variable Coefficient Std.Error t-Statistic Probability ------------------------------------------------------------------------------------ CONSTANT 3530096.94814 1117521.58265 3.15886 0.00369 Area -1.81587 13.00532 -0.13963 0.88992 Perimeter 17.50780 630.31767 0.02778 0.97803 ------------------------------------------------------------------------------------ REGRESSION DIAGNOSTICS MULTICOLLINEARITY CONDITION NUMBER 5.529 TEST ON NORMALITY OF ERRORS TEST DF VALUE PROB Jarque-Bera 2 50.929 0.0000 DIAGNOSTICS FOR HETEROSKEDASTICITY RANDOM COEFFICIENTS TEST DF VALUE PROB Breusch-Pagan test 2 2.634 0.2679 Koenker-Bassett test 2 0.780 0.6769 ================================ END OF REPORT =====================================
In [ ]:
#Evaluar si interfieren los efectos espaciales
#la variable dependiente
moranPO = Moran(mexico_estados[dep_var_name], w_knn8)
moranPO.I,moranPO.p_sim
Out[ ]:
(np.float64(0.037916741106930475), np.float64(0.117))
In [ ]:
#el término de error
moranError = Moran(ols_model.u, w_knn8)
moranError.I,moranError.p_sim
Out[ ]:
(np.float64(0.027524126810472224), np.float64(0.146))
In [ ]:
#La variable dependiente y los residuos del modelo OLS muestran valores de Moran I bajos y estadísticamente no significativos (p > 0.05).
#Por tanto, no se evidencia autocorrelación espacial relevante (congruente con resultados de ejercicios). No es necesario realizar regresión espacial pero lo vamos a hacer porque lo pide
In [ ]:
#Spatial Lag Regression (de la var dep)
SAC_model = spreg.ML_Lag(
mexico_estados[dep_var_name].values,
mexico_estados[ind_vars_names].values,
w=w_knn8,
name_y=labels[0],
name_x=labels[1:],
name_w='KNN8',
name_ds='mexico_estados'
)
print(SAC_model.summary)
REGRESSION RESULTS ------------------ SUMMARY OF OUTPUT: MAXIMUM LIKELIHOOD SPATIAL LAG (METHOD = FULL) ----------------------------------------------------------------- Data set :mexico_estados Weights matrix : KNN8 Dependent Variable : Population Number of Observations: 32 Mean dependent var :3454776.4688 Number of Variables : 4 S.D. dependent var :2898219.5028 Degrees of Freedom : 28 Pseudo R-squared : 0.0098 Spatial Pseudo R-squared: 0.0009 Log likelihood : -520.9504 Sigma-square ML :8070327423370.9961 Akaike info criterion : 1049.901 S.E of regression :2840832.1709 Schwarz criterion : 1055.764 ------------------------------------------------------------------------------------ Variable Coefficient Std.Error z-Statistic Probability ------------------------------------------------------------------------------------ CONSTANT 2771483.71705 1572492.36261 1.76248 0.07799 Area -0.45112 12.33543 -0.03657 0.97083 Perimeter 60.15718 597.84088 0.10062 0.91985 W_Population 0.15652 0.34433 0.45455 0.64943 ------------------------------------------------------------------------------------ SPATIAL LAG MODEL IMPACTS Impacts computed using the 'simple' method. Variable Direct Indirect Total Area -0.4511 -0.0837 -0.5348 Perimeter 60.1572 11.1628 71.3200 ================================ END OF REPORT =====================================
In [ ]:
#Coefficient W_Population (ρ = 0.1565, p = 0.3), se va a ignorar el p
#Incremento de 10% en población en áreas cercanas significa 1.5% de crecimiento de población.
#El crecimiento poblacional no es tan "contagioso"
In [ ]:
SER_model = spreg.ML_Error(
mexico_estados[dep_var_name].values,
mexico_estados[ind_vars_names].values,
w=w_knn8,
name_y=labels[0],
name_x=labels[1:],
name_w='KNN8',
name_ds='mexico_estados'
)
print(SER_model.summary)
REGRESSION RESULTS ------------------ SUMMARY OF OUTPUT: ML SPATIAL ERROR (METHOD = full) --------------------------------------------------- Data set :mexico_estados Weights matrix : KNN8 Dependent Variable : Population Number of Observations: 32 Mean dependent var :3454776.4688 Number of Variables : 3 S.D. dependent var :2898219.5028 Degrees of Freedom : 29 Pseudo R-squared : 0.0005 Log likelihood : -520.8974 Sigma-square ML :8004597531122.5020 Akaike info criterion : 1047.795 S.E of regression :2829239.7444 Schwarz criterion : 1052.192 ------------------------------------------------------------------------------------ Variable Coefficient Std.Error z-Statistic Probability ------------------------------------------------------------------------------------ CONSTANT 2843814.93563 1225000.17103 2.32148 0.02026 Area 1.87211 12.54450 0.14924 0.88137 Perimeter 180.05105 588.54720 0.30592 0.75966 lambda 0.26802 0.31345 0.85507 0.39251 ------------------------------------------------------------------------------------ ================================ END OF REPORT =====================================
/usr/local/lib/python3.11/dist-packages/spreg/ml_error.py:184: RuntimeWarning: Method 'bounded' does not support relative tolerance in x; defaulting to absolute tolerance. res = minimize_scalar(
In [ ]:
#el 26.8% de los factores no observados en la población de un estado se transmiten desde los vecinos.
#Es poco probable que factores externos siendo trasladados interestatalmente
In [ ]:
#Este error se ve explicado por: Datos con muy poca variación o muy extremos, Multicolinealidad entre variables independientes, La exigencia del modelo combo het: pues no deberian haber problemas ya que w_knn8 esta normalizada
SAC_model = spreg.GM_Combo_Het(
mexico_estados[dep_var_name].values,
mexico_estados[ind_vars_names].values,
w=w_knn8,
name_y=labels[0],
name_x=labels[1:],
name_w='KNN8',
name_ds='mexico_estados'
)
print(SAC_model.summary)
--------------------------------------------------------------------------- Exception Traceback (most recent call last) /tmp/ipython-input-602-3964174684.py in <cell line: 0>() 1 #Este error se ve explicado por: Datos con muy poca variación o muy extremos, Multicolinealidad entre variables independientes, La exigencia del modelo combo het: pues no deberian haber problemas ya que w_knn8 esta normalizada ----> 2 SAC_model = spreg.GM_Combo_Het( 3 mexico_estados[dep_var_name].values, 4 mexico_estados[ind_vars_names].values, 5 w=w_knn8, /usr/local/lib/python3.11/dist-packages/spreg/error_sp_het.py in __init__(self, y, x, yend, q, w, w_lags, slx_lags, slx_vars, lag_q, max_iter, epsilon, step1c, inv_method, vm, name_y, name_x, name_yend, name_q, name_w, name_ds, latex, hard_bound) 1470 ) 1471 self.rho = self.betas[-2] -> 1472 self.predy_e, self.e_pred, warn = UTILS.sp_att( 1473 w, self.y, self.predy, yend2[:, -1].reshape(self.n, 1), self.rho 1474 ) /usr/local/lib/python3.11/dist-packages/spreg/utils.py in sp_att(w, y, predy, w_y, rho, hard_bound) 750 xb = predy - rho * w_y 751 if np.abs(rho) < 1: --> 752 predy_sp = inverse_prod(w, xb, rho) 753 warn = None 754 # Note 1: Here if omitting pseudo-R2; If not, see Note 2. /usr/local/lib/python3.11/dist-packages/spreg/utils.py in inverse_prod(w, data, scalar, post_multiply, inv_method, threshold, max_iterations) 605 """ 606 if inv_method == "power_exp": --> 607 inv_prod = power_expansion( 608 w, 609 data, /usr/local/lib/python3.11/dist-packages/spreg/utils.py in power_expansion(w, data, scalar, post_multiply, threshold, max_iterations) 666 test = la.norm(increment) 667 if test > test_old: --> 668 raise Exception( 669 "power expansion will not converge, check model specification and that weight are less than 1" 670 ) Exception: power expansion will not converge, check model specification and that weight are less than 1