Elaborado por: Luis Alan Navarro N. (10 febrero 2023)
El Colegio de Sonora
Un problema del que adolecen los Organismos Operadores de Agua (OOA) en México es la alta rotación de directores o gerentes generales. Existe la cultura y costumbre de que los OOA sean un lugar más, para que el presidente municipal electo coloque a simpatizantes, amistades, o en general personas de su confianza; los cuales, cuando bien les va, permanecen en el puesto los tres años que dura la administración municipal.
A continuación se analizan dos OOA, la idea fue hacer un listado de los directores, en tres casos (municipios): Cuernavaca, Hermosillo y Saltillo.
El Sistema de Agua Potable y Alcantarillado del Municipio de Cuernavaca (SAPAC) se investigó desde marzo de 2013 a la fecha.
De la misma forma, se tiene disponible la información desde la creación del OOA en 2002, cuando el servicio se municipaliza, hasta la fecha.
Se obtuvo información desde el año 2001 a partir de fuentes bibliográficas para los primeros cuatro directores. No se pudo precisar la fecha exacta en la que iniciaron sus encargos. Aguas de Saltillo nace en el año 2001 de una alianza público – privada.
En los OOA de Hermosillo y Cuernavaca, el mecanismo de designación es el mismo, el director lo propone el presidente municipal y lo ratifica la Junta de Gobierno (JG). Los nombramientos son publicados en los medios de comunicación. Salazar-Adams et al., (2020) mencionan que "en Saltillo, el gerente general es propuesto por los accionistas privados y su nombramiento se aprueba en la Asamblea de Accionistas", sugieren que estos han sido profesionales internacionales con experiencia en el manejo de OOA.
# modulos a usar
import pandas as pd
import numpy as np
import seaborn as sns
import datetime
from IPython.core.display import display, HTML
Elaboramos manualmente la base de datos, en base a la revisión de información documental diversa publicada en Internet. El listado de AGUAH del 2002 al 2017 fue tomado de Salazar-Adams y Méndez-Barrón (2020, p.79). El de AGSAL de tomó de Haro-Velarde y Salazar-Adams (2016) y se complementó con una búsqueda en Internet.
# Nombre del director o encargado del organismo
Director_names = np.array(['Fernando Blumenkron Escobar', 'Arnulfo Daniel Luna David',
'Mauricio Vega Chavaje', 'Maria Luisa López Sotelo',
'Oscar González Bahena', 'Jaime Tapia Rodríguez',
'Yarely Jaimes García', 'José Pérez Torres',
'Alessandro Innocenzi Silenzi', 'Dante Figueroa Castelar',
'Hector Ignacio Figueroa Cisneros', 'Hector Ignacio Figueroa Cisneros',
'Braulio Israel Fabela Beltrán', 'Remigio Álvarez Andrés', 'Jennifer Negrete Contreras',
'Evelia Flores Hernández '])
# Fecha de inicio en mm/dd/yyyy
fecha = np.array(['8/5/2019', '1/3/2019',
'12/3/2019', '2/21/2018',
'11/20/2018', '4/14/2020',
'9/5/2020', '9/27/2016',
'2/11/2016', '4/25/2014',
'2/5/2014', '1/30/2015',
'9/17/2015', '3/25/2013',
'2/2/2021', '1/3/2022'])
# Hacemos lo mismo para AGUAH
Director_names_aguah = np.array (['Jorge Amaya Acedo', 'Enrique Alfonso Martínez Preciado',
'José Luis Jardines Moreno', 'Leovigildo Reyes Flores', 'Alejandro Barrera Navarro',
'David Ernesto Contreras Camou', 'Renato Ulloa Valdéz', 'María Victoria Olavarrieta Carmona',
'Nicolás Alfredo Gómez Sarabia', 'Daniel Sánchez González','Renato Ulloa Valdéz'
])
fechas_aguah = np.array (['1/20/2002', '9/15/2003',
'9/16/2006', '7/3/2010', '4/27/2012',
'9/24/2012', '9/21/2015', '9/20/2018',
'8/9/2019', '10/15/2020', '9/17/2021'
])
#####
Director_names_agsal = np.array(['Jesús María García García',
'Rogério Koehn',
'José María Tura Torres',
'Alejandro Osuna Ruiz-Poveda',
'Jordi Bosch Bragado'])
### No se pudo obtener la fecha exacta en la que ocuparon el puesto
fechas_agsal = np.array (['1/1/2001', '1/1/2006',
'1/1/2009', '1/1/2010',
'7/27/2015'
])
# funcion para quedarme con las iniciales
def get_initials(fullname):
xs = (fullname)
name_list = xs.split()
initials = ""
for name in name_list: # go through each name
initials += name[0].upper() # append the initial
return initials
# Tomada de:
# https://www.codegrepper.com/code-examples/python/Fill+in+the+gaps+in+the+initials+function+so+that+it+returns+the+initials+of+the+words+contained+in+the+phrase+received%2C+in+upper+case
# Aplicamos la funcion
Director=[] # creo un vector vacio
for i in Director_names:
Director.append(get_initials(i))
# Podemos echar un vistazo:
# print(Director)
Director_aguah = []
for i in Director_names_aguah:
Director_aguah.append(get_initials(i))
# Podemos echar un vistazo:
# print(Director_aguah)
Director_agsal = []
for i in Director_names_agsal:
Director_agsal.append(get_initials(i))
### SAPAC
df = pd.DataFrame() # una tabla o dataframe vacio
df['Direc_nom'] = Director_names
df['Direc'] = Director
df['Fecha'] = fecha
df['Fecha1'] = pd.to_datetime(df['Fecha'], infer_datetime_format=True) # pasamos a formato de fecha
### AGUAH
df1 = pd.DataFrame() # una tabla o dataframe vacio
df1['Direc_nom1'] = Director_names_aguah
df1['Direc1'] = Director_aguah
df1['Fecha_a'] = fechas_aguah
df1['Fecha_a1'] = pd.to_datetime(df1['Fecha_a'], infer_datetime_format=True) # pasamos a formato de fecha
### AGSAL
df2 = pd.DataFrame() # una tabla o dataframe vacio
df2['Direc_nom2'] = Director_names_agsal
df2['Direc2'] = Director_agsal
df2['Fecha_a2'] = fechas_agsal
df2['Fecha_a22'] = pd.to_datetime(df2['Fecha_a2'], infer_datetime_format=True) # pasamos a formato de fecha
### SAPAC
df = df.sort_values(by='Fecha1') # ordenamos por fecha
df = df.reset_index(drop=True) # actualizamos los indices de cada fila
### AGUAH
df1 = df1.sort_values(by='Fecha_a1') # ordenamos por fecha
df1 = df1.reset_index(drop=True) # actualizamos los indices de cada fila
### AGSAL
df2 = df2.sort_values(by='Fecha_a22') # ordenamos por fecha
df2 = df2.reset_index(drop=True) # actualizamos los indices de cada fila
### SAPAC
df['meses'] = round((abs(df['Fecha1'].diff(-1))/np.timedelta64(1, 'M')),2)
### AGUAH
df1['meses1'] = round((abs(df1['Fecha_a1'].diff(-1))/np.timedelta64(1, 'M')),2)
### AGSAL
df2['meses2'] = round((abs(df2['Fecha_a22'].diff(-1))/np.timedelta64(1, 'M')),2)
Los resultados obtenidos se resumen en la tabla siguiente, dónde se indica la fecha de inicio en el cargo y la duración en "meses". Se indica también el nombre y en la columna "Direc" están las iniciales del nombre.
# Set colormap equal to seaborns light green color palette
###
# Set CSS properties for th elements in dataframe
th_props = [
('font-size', '11px'),
('text-align', 'center'),
('font-weight', 'bold'),
('color', '#6d6d6d'),
('background-color', '#f7f7f9')
]
# Set CSS properties for td elements in dataframe
td_props = [
('font-size', '11px')
]
# Set table styles
styles = [
dict(selector="th", props=th_props),
dict(selector="td", props=td_props)
]
cm = sns.light_palette("green", as_cmap=True)
######
(df.style
.background_gradient(cmap=cm, subset=['meses'])
.highlight_max(subset=['meses'], color='orange')
.hide_columns(subset= ['Fecha1', 'Direc']) # Omitimos estas columnas
.set_precision(2)
.set_caption('SAPAC Cuernavaca, duración en meses de directores (marzo 2013 a la fecha)')
.set_table_styles(styles))
/var/folders/lg/9zpw9g493lzfk0mhzsn2w4l80000gn/T/ipykernel_57974/1113240969.py:24: FutureWarning: this method is deprecated in favour of `Styler.hide(axis='columns')` (df.style /var/folders/lg/9zpw9g493lzfk0mhzsn2w4l80000gn/T/ipykernel_57974/1113240969.py:24: FutureWarning: this method is deprecated in favour of `Styler.format(precision=..)` (df.style
Direc_nom | Fecha | meses | |
---|---|---|---|
0 | Remigio Álvarez Andrés | 3/25/2013 | 10.41 |
1 | Hector Ignacio Figueroa Cisneros | 2/5/2014 | 2.60 |
2 | Dante Figueroa Castelar | 4/25/2014 | 9.20 |
3 | Hector Ignacio Figueroa Cisneros | 1/30/2015 | 7.56 |
4 | Braulio Israel Fabela Beltrán | 9/17/2015 | 4.83 |
5 | Alessandro Innocenzi Silenzi | 2/11/2016 | 7.52 |
6 | José Pérez Torres | 9/27/2016 | 16.82 |
7 | Maria Luisa López Sotelo | 2/21/2018 | 8.94 |
8 | Oscar González Bahena | 11/20/2018 | 1.45 |
9 | Arnulfo Daniel Luna David | 1/3/2019 | 7.03 |
10 | Fernando Blumenkron Escobar | 8/5/2019 | 3.94 |
11 | Mauricio Vega Chavaje | 12/3/2019 | 4.37 |
12 | Jaime Tapia Rodríguez | 4/14/2020 | 4.73 |
13 | Yarely Jaimes García | 9/5/2020 | 4.93 |
14 | Jennifer Negrete Contreras | 2/2/2021 | 11.01 |
15 | Evelia Flores Hernández | 1/3/2022 | nan |
### SAPAC
fecha_1 = df.iloc[0,3]
date_string = '10/2/2023'
fecha_2 = datetime.datetime(2023, 2, 10, 0, 0)
tiempo_obs11 = round((fecha_2-fecha_11)/ np.timedelta64(1,'Y'),2)
lastSAPAC = round((fecha_222-df.iloc[15,3])/ np.timedelta64(1,'M'),2)
tiempo_obs = round((fecha_2-fecha_1)/ np.timedelta64(1,'Y'),2)
# print(tiempo_obs)
r, c = df.shape
Los resultados muestran una frecuente rotación de directores o encargados del OOA. En un período de 9.88 años, SAPAC ha tenido 16 directores o encargados del OOA. En promedio, éstos han durado 7.02 meses en el puesto. La última directora lleva 13.24 meses en el puesto.
La siguiente tabla muestra los resultados del análisis para AGUAH. Dónde igual está el nombre, iniciales, fecha de inicio en el puesto y por último la duración en meses.
####AGUAH
(df1.style
.background_gradient(cmap=cm, subset=['meses1'])
.highlight_max(subset=['meses1'], color='orange')
.hide_columns(subset= ['Fecha_a1', 'Direc1']) # Omitimos estas columnas
.set_precision(2)
.set_caption('Agua de Hermosillo, duración en meses de directores (enero de 2002 a la fecha)')
.set_table_styles(styles))
/var/folders/lg/9zpw9g493lzfk0mhzsn2w4l80000gn/T/ipykernel_57974/1560144617.py:2: FutureWarning: this method is deprecated in favour of `Styler.hide(axis='columns')` (df1.style /var/folders/lg/9zpw9g493lzfk0mhzsn2w4l80000gn/T/ipykernel_57974/1560144617.py:2: FutureWarning: this method is deprecated in favour of `Styler.format(precision=..)` (df1.style
Direc_nom1 | Fecha_a | meses1 | |
---|---|---|---|
0 | Jorge Amaya Acedo | 1/20/2002 | 19.81 |
1 | Enrique Alfonso Martínez Preciado | 9/15/2003 | 36.04 |
2 | José Luis Jardines Moreno | 9/16/2006 | 45.54 |
3 | Leovigildo Reyes Flores | 7/3/2010 | 21.82 |
4 | Alejandro Barrera Navarro | 4/27/2012 | 4.93 |
5 | David Ernesto Contreras Camou | 9/24/2012 | 35.88 |
6 | Renato Ulloa Valdéz | 9/21/2015 | 35.98 |
7 | María Victoria Olavarrieta Carmona | 9/20/2018 | 10.61 |
8 | Nicolás Alfredo Gómez Sarabia | 8/9/2019 | 14.23 |
9 | Daniel Sánchez González | 10/15/2020 | 11.07 |
10 | Renato Ulloa Valdéz | 9/17/2021 | nan |
### AGUAH
fecha_11 = df1.iloc[0,3]
date_string = '10/2/2023'
fecha_22 = datetime.datetime(2023, 2, 10, 0, 0)
tiempo_obs11 = round((fecha_22-fecha_11)/ np.timedelta64(1,'Y'),2)
lastAGUAH = round((fecha_222-df1.iloc[10,3])/ np.timedelta64(1,'M'),2)
tiempo_obs1 = round((fecha_22-fecha_11)/ np.timedelta64(1,'Y'),2)
# print(tiempo_obs)
r1, c1 = df1.shape
Aunque estimado para un período más largo, el OOA AGUAH ha logrado una permanencia más duradera de sus directores en comparación con SAPAC. En un período de 21.06 años, AGUAH ha tenido 11 directores o encargados del OOA. En promedio, éstos han durado 23.59 meses en el puesto. Solo uno logró permanecer en el puesto más de tres años. Solo se ha tenido una mujer directora y solo uno ha regresado a la dirección después de un período administravivo municipal. El director actual lleva 16.79 meses en el puesto.
(df2.style
.background_gradient(cmap=cm, subset=['meses2'])
.highlight_max(subset=['meses2'], color='orange')
.hide_columns(subset= ['Fecha_a22', 'Direc2']) # Omitimos estas columnas
.set_precision(2)
.set_caption('Aguas de Saltillo, duración en meses de directores (2001 a la fecha)')
.set_table_styles(styles))
/var/folders/lg/9zpw9g493lzfk0mhzsn2w4l80000gn/T/ipykernel_57974/1094016562.py:1: FutureWarning: this method is deprecated in favour of `Styler.hide(axis='columns')` (df2.style /var/folders/lg/9zpw9g493lzfk0mhzsn2w4l80000gn/T/ipykernel_57974/1094016562.py:1: FutureWarning: this method is deprecated in favour of `Styler.format(precision=..)` (df2.style
Direc_nom2 | Fecha_a2 | meses2 | |
---|---|---|---|
0 | Jesús María García García | 1/1/2001 | 59.99 |
1 | Rogério Koehn | 1/1/2006 | 36.01 |
2 | José María Tura Torres | 1/1/2009 | 11.99 |
3 | Alejandro Osuna Ruiz-Poveda | 1/1/2010 | 66.79 |
4 | Jordi Bosch Bragado | 7/27/2015 | nan |
### AGSAL
fecha_111 = df2.iloc[0,3]
date_string = '10/2/2023'
fecha_222 = datetime.datetime(2023, 2, 10, 0, 0)
tiempo_obs11 = round((fecha_222-fecha_111)/ np.timedelta64(1,'Y'),2)
lastAGSAL = round((fecha_222-df2.iloc[4,3])/ np.timedelta64(1,'M'),2)
# print(tiempo_obs)
r11, c11 = df2.shape
Los resultados muestran muy poco frecuente rotación de directores o encargados del OOA. En un período de 22.11 años, AGSAL ha tenido 5 directores o encargados del OOA. En promedio, éstos han durado 43.7 meses en el puesto. El director actual lleva 90.52 meses en el puesto.
Haro-Velarde, N., y Salazar-Adams, A. (2016). Aguas de Saltillo: La primera experiencia de participación mixta en la gestión urbana del agua en México. En: Fugas de agua y dinero: Factores político-institucionales que inciden en el desempeño de los organismos operadores de agua potable en México. Alejandro Salazar Adams Coordinador. El Colegio de Sonora, Hermosillo, Sonora, México.
Salazar-Adams, A., Haro-Velarde, N., y Loera-Burnes, E. (2020). Capacidad institucional de los organismos de agua de Saltillo y Hermosillo, México. Frontera norte vol. 32n. 00 https://doi.org/10.33679/rfn.v1i1.1936
Salazar-Adams, A., y Méndez-Barrón, R. (2020, p.79). Mucha política y poca administración: Torreón y Hermosillo. En: El agua en las ciudades del norte y Bajío de México, capacidad institucional y desempeño. Alejandro Salazar Adams Coordinador. El Colegio de Sonora, Hermosillo, Sonora, México. 53-90