La información a disposición en el portal de transparencia (https://www.portaltransparencia.cl/PortalPdT/web/guest/home) está en archivos csv. Los archivos son de tamaño 1GB a 4GB, ya que trae la data histórica sobre las contrataciones y es por el tamaño de archivos que usaremos la libraría dask. En este caso, filtraremos por un mes y año en específico. El resultado serán archivos de 4KB (aprox x10^6 más pequeños).
import dask.dataframe as dd
#Ruta a archivo
PATH = 'TA_PersonalCodigotrabajo.csv'
#Especificar metadata para rápida lectura
types = {'camino': str, 'organismo_nombre': str, 'organismo_codigo': str, 'fecha_publicacion': str,
'anyo': str, 'Mes': str, 'nombre': str, 'Tipo cargo': str, 'grado_eus': str,
'tipo_calificacionp': str, 'region': str, 'asignaciones': str, 'Tipo Unidad monetaria': str,
'remuneracionbruta_mensual': float, 'remuliquida_mensual': float, 'diurnas': str,
'nocturnas': str, 'fecha_ingreso': str, 'fecha_termino': str, 'observaciones': str,
'viaticos': str, 'enlace': str}
#Lectura
df = dd.read_csv(PATH, encoding='ISO-8859-1', delimiter=';', dtype = types)
#Display de las primeras filas
df.head()
len(df)
5370461
Ahora filtramos el dataframe por el mes y por el año para finalmente guardarlo en un archivo
#Seleccionamos el mes y año deseado
month = 'Febrero'
year = 2020
#Filtramos el dataframe y lo guardamos
new_df = df[df.anyo == str(year)]
new_df = new_df[new_df.Mes == month]
new_df.head()
new_df.to_csv(month + str(year) + '/PersonalCodigotrabajo.csv', single_file = True)
['/Users/profemiguel/Desktop/Projects/Tesis/ADP/Febrero2020/PersonalCodigotrabajo.csv']
#Ruta a archivo
PATH = 'TA_PersonalContrata.csv'
#Especificar metadata para rápida lectura
types = {'camino': str, 'organismo_nombre': str, 'organismo_codigo': str, 'fecha_publicacion': str,
'anyo': str, 'Mes': str, 'Tipo Estamento': str, 'nombre': str, 'Tipo cargo': str, 'grado_eus': str,
'tipo_calificacionp': str, 'region': str, 'asignaciones': str, 'Tipo Unidad monetaria': str,
'remuneracionbruta_mensual': float, 'remuliquida_mensual': float, 'diurnas': str, 'festivas':str,
'nocturnas': str, 'fecha_ingreso': str, 'fecha_termino': str, 'observaciones': str,
'viaticos': str, 'enlace': str, 'Pago extra diurnas': 'float64'}
#Lectura
df2 = dd.read_csv(PATH, encoding='ISO-8859-1', delimiter=';', dtype=types)
#Display de las primeras filas
df2.head()
camino | organismo_nombre | organismo_codigo | fecha_publicacion | anyo | Mes | Tipo Estamento | Nombres | Paterno | Materno | ... | Horas extra diurnas | Pago extra nocturnas | Horas extra nocturnas | Pago extra festivas | Horas extra festivas | fecha_ingreso | fecha_termino | observaciones | enlace | viaticos | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | /Pagina 3 | Partido Ciudadanos | PP030 | 2016/06/29 | 2016 | Abril | Profesional | JORGE ANTONIO | CARRIZO | CARRASCO | ... | 8.0 | NaN | NaN | NaN | NaN | 15/06/2011 | 16/04/2015 | Esto es un funcionario de prueba | No | NaN |
1 | /Pagina 3 | Partido Ciudadanos | PP030 | 2016/06/29 | 2016 | Abril | Profesional | HOMERO ANDRES | CASANGA | CORTES | ... | 8.0 | NaN | NaN | NaN | NaN | 16/06/2011 | 17/04/2015 | Esto es un funcionario de prueba | No | NaN |
2 | /Pagina 3 | Partido Ciudadanos | PP030 | 2016/06/29 | 2016 | Abril | Profesional | TOMAS RODRIGO | CASAREGGIO | SEPULVEDA | ... | 8.0 | NaN | NaN | NaN | NaN | 17/06/2011 | 18/04/2015 | Esto es un funcionario de prueba | No | NaN |
3 | /Pagina 3 | Partido Ciudadanos | PP030 | 2016/06/29 | 2016 | Abril | Administrativo | SEBASTIAN ABELARDO | CASTILLO | SEPULVEDA | ... | 8.0 | NaN | NaN | NaN | NaN | 18/06/2011 | 19/04/2015 | Esto es un funcionario de prueba | No | NaN |
4 | /Pagina 3 | Partido Ciudadanos | PP030 | 2016/06/29 | 2016 | Abril | Profesional | AIDA MORELIA | CASTRO | CASTRO | ... | 8.0 | NaN | NaN | NaN | NaN | 19/06/2011 | 20/04/2015 | Esto es un funcionario de prueba | No | NaN |
5 rows × 29 columns
Ahora filtramos el dataframe por el mes y por el año para finalmente guardarlo en un archivo
#Seleccionamos el mes y año deseado
month = 'Febrero'
year = 2020
#Filtramos el dataframe y lo guardamos
new_df2 = df2[df2.anyo == str(year)]
new_df2 = new_df2[new_df2.Mes == month]
new_df2.to_csv(month + str(year) + '/PersonalContrata.csv', single_file = True)
['/Users/profemiguel/Desktop/Projects/Tesis/ADP/Febrero2020/PersonalContrata.csv']
#Ruta a archivo
PATH = 'TA_PersonalPlanta.csv'
#Especificar metadata para rápida lectura
types = {'camino': str, 'organismo_nombre': str, 'organismo_codigo': str, 'fecha_publicacion': str,
'anyo': str, 'Mes': str, 'Tipo Estamento': str, 'nombre': str, 'Tipo cargo': str, 'grado_eus': str,
'tipo_calificacionp': str, 'region': str, 'asignaciones': str, 'Tipo Unidad monetaria': str,
'remuneracionbruta_mensual': float, 'remuliquida_mensual': float, 'diurnas': str, 'festivas':str,
'nocturnas': str, 'fecha_ingreso': str, 'fecha_termino': str, 'observaciones': str,
'viaticos': str, 'enlace': str}
#Lectura
df3 = dd.read_csv(PATH, encoding='ISO-8859-1', delimiter=';', dtype = types)
#Display de las primeras filas
df3.head()
len(df3)
7511676
Ahora filtramos el dataframe por el mes y por el año para finalmente guardarlo en un archivo
#Seleccionamos el mes y año deseado
month = 'Abril'
year = 2020
#Filtramos el dataframe y lo guardamos
new_df3 = df3[df3.anyo == str(year)]
new_df3 = new_df3[new_df3.Mes == month]
new_df3.to_csv(month + str(year) + '/PersonalPlanta.csv', single_file = True)
#Ruta a archivo
PATH = 'TA_PersonalContratohonorarios.csv'
#Especificar metadata para rápida lectura
types = {'camino': str, 'organismo_nombre': str, 'organismo_codigo': str, 'fecha_publicacion': str,
'anyo': str, 'Mes': str, 'nombre': str, 'grado_eus': str, 'descripcion_funcion': str,
'tipo_calificacionp': str, 'region': str, 'Tipo Unidad monetaria': str,
'remuneracionbruta': float, 'remuliquida_mensual': float, 'pago_mensuales': str,
'fecha_ingreso': str, 'fecha_termino': str, 'observaciones': str,
'viaticos': str, 'enlace': str}
#Lectura
df4 = dd.read_csv(PATH, encoding='ISO-8859-1', delimiter=';')
#Display de las primeras filas
df4.head()
camino | organismo_nombre | organismo_codigo | fecha_publicacion | anyo | Mes | Nombres | Paterno | Materno | grado_eus | ... | region | Tipo Unidad monetaria | remuneracionbruta | remuliquida_mensual | pago_mensuales | fecha_ingreso | fecha_termino | observaciones | enlace | viaticos | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | /Año 2017/Mayo | Asociación de Municipalidades del Valle del Maipo | MA049 | 2020/12/01 | 2017 | Junio | Luis | Céspedes | Inostroza | No asimilado a Grado | ... | Región Metropolitana de Santiago | Pesos | 888889 | 800000.0 | Sí | 2016/06/01 00:00:00.000 | 31/12/2017 | Sin observaciones | No | NaN |
1 | /Año 2017/Junio | Asociación de Municipalidades del Valle del Maipo | MA049 | 2020/12/01 | 2017 | Junio | Luis | Céspedes | Inostroza | No asimilado a Grado | ... | Región Metropolitana de Santiago | Pesos | 888889 | 800000.0 | Sí | 2016/06/01 00:00:00.000 | 31/12/2017 | Sin observaciones | No | NaN |
2 | /Año 2017/Julio | Asociación de Municipalidades del Valle del Maipo | MA049 | 2020/12/01 | 2017 | Junio | Luis | Céspedes | Inostroza | No asimilado a Grado | ... | Región Metropolitana de Santiago | Pesos | 888889 | 800000.0 | Sí | 2016/06/01 00:00:00.000 | 31/12/2017 | Sin observaciones | No | NaN |
3 | /Año 2017/Agosto | Asociación de Municipalidades del Valle del Maipo | MA049 | 2020/12/01 | 2017 | Junio | Luis | Céspedes | Inostroza | No asimilado a Grado | ... | Región Metropolitana de Santiago | Pesos | 888889 | 800000.0 | Sí | 2016/06/01 00:00:00.000 | 31/12/2017 | Sin observaciones | No | NaN |
4 | /2017/Noviembre | Asociación Municipalidades Provincia de Llanqu... | MA025 | 2017/12/21 | 2017 | Noviembre | Alejandro Javier | Bórquez | Felmer | No asimilado a grado | ... | Región de Los Lagos | Pesos | 1700000 | 1530000.0 | Sí | 2016/12/01 00:00:00.000 | 31/12/2017 | Sin observaciones | No | NaN |
5 rows × 22 columns
Ahora filtramos el dataframe por el mes y por el año para finalmente guardarlo en un archivo
#Seleccionamos el mes y año deseado
month = 'Abril'
year = 2020
#Filtramos el dataframe y lo guardamos
new_df4 = df4[df4.anyo == year]
new_df4 = new_df4[new_df4.Mes == month]
new_df4.to_csv(month + str(year) + '/PersonalHonorarios.csv', single_file = True)
new_df4.head(10)