Día 3: Conjunto de datos seleccionado y razones (E9)

Este espacio está dedicado para compartir los avances de las actividades de este día.

Sobre las actividades, te dejamos una guía a continuación:

Para compartir los avances, cuéntanos lo siguiente:

  • Cuáles son esos conjuntos de datos afortunadas que seleccionaste para trabajar.
  • Los conjuntos de datos seleccionados ¿necesitaron del proceso de limpieza? Cuéntanos cómo realizaste el proceso de limpieza, si conocías una herramienta para ello, o si utilizaste alguna recomendada en la mentoría. Comparte esa experiencia en un párrafo.

Marca el check :white_check_mark: cuando hayas realizado la actividad.

Solución
Cuáles son esos conjuntos de datos afortunadas que seleccionaste para trabajar.
El Teletrabajo es una modalidad de trabajo que llegó para quedarse, es importante estudiar cómo esto ha ido evolucionando en Ecuador.

  • Asumimos que en la pandemia el teletrabajo aumentó, eso nos dice la intuición, pero qué nos dicen los datos?
  • Será que en cierta provincias hay más personas en modalidad de teletrabajo que en otras?
  • Existen más hombres que mujeres en modalidad de teletrabajo?
  • El contrato es vigente? El teletrabajo fue tendencia en la pandemia o siguió?

Son preguntas que esperamos responder. Es por esto que escogimos el conjunto de datos de teletrabajo.

Los conjuntos de datos seleccionados ¿necesitaron del proceso de limpieza? Cuéntanos cómo realizaste el proceso de limpieza , si conocías una herramienta para ello, o si utilizaste alguna recomendada en la mentoría. Comparte esa experiencia en un párrafo.

En efecto, el dataset escogido necesitó de limpieza, desde cambiar nombres de columnas y datos en filas que tenían un encoding incorrecto (básicamente que no se reconocían caracteres del alfabeto español). Columnas que tenían un tipo de dato decimal y que debía ser entero.
Dividimos la limpieza entre valores NaN y valor No NaN.

Además en este proceso de limpieza identificamos los tipos de valores que existían en cada columna, hemos utilizado la Librería pandas de Python. En el código continuación se encuentran más detalles.

import pandas as pd
import chardet
import numpy as np

path_to_data = "data/teletrabajo/mdt_teletrabajo_2022mayo.csv"
path_to_dict = "data/teletrabajo/mdt_teletrabajo_dd_2022marzo.ods"
with open(path_to_data, 'rb') as f:
    enc = chardet.detect(f.read()) 

# cargar la Data
df = pd.read_csv(path_to_data,encoding='latin1', delimiter=";")
df_dict = pd.read_excel(path_to_dict)



# Renombrar columnas
df.rename(columns = {'motivo_teletrabajo' : 'motivo_trabajo' , 'Número de registros' : 'numero_de_registros'}, inplace = True)
columns = df.columns

# Veo los valores NaN: Cuando tengo valores NaN no tengo ningun tipo de referencia de inicio de trabajo
df[df['mes_fecha_inicio_teletrabajo'].isna()]

# Separo un DataFrame con Valores NotNaN
df_notna = df[df['mes_fecha_inicio_teletrabajo'].notna()]

# Valor de fecha deberia ser entero no decimal
df_notna['mes_fecha_inicio_teletrabajo'] = df_notna['mes_fecha_inicio_teletrabajo'].apply(np.int64)

# Veamos que tipo de valores tenemos en cada columns
# Esto me da los distintos valores ingresados mostrados como unicos.
# En base a esto podemos corregir valores incorrectos o mal escritos
# for i in columns:
#     print(df_notna[i].unique())


# Correccion encoding provincia_contrato
df_notna['provincia_contrato'] = df_notna['provincia_contrato'].replace('SANTO DOMINGO DE LOS TSÃ\x81CHILAS', 'SANTO DOMINGO DE LOS TSACHILAS', regex=True) 
df_notna['provincia_contrato'] = df_notna['provincia_contrato'].replace('CAÃ\x91AR (REGIMEN COSTA)', 'CAÑAR (REGIMEN COSTA)', regex=True) 
df_notna['provincia_contrato'] = df_notna['provincia_contrato'].replace('CAÃ\x91AR', 'CAÑAR', regex=True) 
df_notna['provincia_contrato'] = df_notna['provincia_contrato'].replace('GALÃ\x81PAGOS', 'GALAPAGOS', regex=True) 
df_notna['provincia_contrato'].unique() 

# Correccion encoding provincia_contrato (grupo)
df_notna['provincia_contrato (grupo)'] = df_notna['provincia_contrato (grupo)'].replace('SANTO DOMINGO DE LOS TSÃ\x81CHILAS', 'SANTO DOMINGO DE LOS TSACHILAS', regex=True) 
df_notna['provincia_contrato (grupo)'] = df_notna['provincia_contrato (grupo)'].replace('CAÃ\x91AR', 'CAÑAR', regex=True) 
df_notna['provincia_contrato (grupo)'] = df_notna['provincia_contrato (grupo)'].replace('GALÃ\x81PAGOS', 'GALAPAGOS', regex=True) 
df_notna['provincia_contrato (grupo)'].unique() 

# Correccion encoding canton_contrato 
# Busquemos los que estan mal escritos
list_a = df_notna['canton_contrato'].unique()
# Muestra todos los valores mal escritos.
sub = "Ã"
res = [i for i in list_a if sub in i ]
# ['SANTO DOMINGO DE LOS TSÃ\x81CHILAS',
#  'CAÃ\x91AR',
#  'TULCÃ\x81N',
#  'LA MANÃ\x81',
#  'PIÃ\x91AS',
#  'MARCELINO MARIDUEÃ\x91A',
#  'MACARÃ\x81',
#  'RUMIÃ\x91AHUI',
#  'OÃ\x91A',
#  'BIBLIÃ\x81N',
#  'GONZANAMÃ\x81']
df_notna['canton_contrato'] = df_notna['canton_contrato'].replace('SANTO DOMINGO DE LOS TSÃ\x81CHILAS', 'SANTO DOMINGO DE LOS TSACHILAS', regex=True) 
df_notna['canton_contrato'] = df_notna['canton_contrato'].replace('CAÃ\x91AR', 'CAÑAR', regex=True) 
df_notna['canton_contrato'] = df_notna['canton_contrato'].replace('TULCÃ\x81N', 'TULCAN', regex=True) 
df_notna['canton_contrato'] = df_notna['canton_contrato'].replace('LA MANÃ\x81', 'LA MANA', regex=True) 
df_notna['canton_contrato'] = df_notna['canton_contrato'].replace('PIÃ\x91AS', 'PIÑAS', regex=True) 
df_notna['canton_contrato'] = df_notna['canton_contrato'].replace('MARCELINO MARIDUEÃ\x91A', 'MARCELINO MARIDUEÑA', regex=True) 
df_notna['canton_contrato'] = df_notna['canton_contrato'].replace('MACARÃ\x81', 'MACARA', regex=True) 
df_notna['canton_contrato'] = df_notna['canton_contrato'].replace('RUMIÃ\x91AHUI', 'RUMIÑAHUI', regex=True) 
df_notna['canton_contrato'] = df_notna['canton_contrato'].replace('OÃ\x91A', 'OÑA', regex=True) 
df_notna['canton_contrato'] = df_notna['canton_contrato'].replace('BIBLIÃ\x81N', 'BIBLIAN', regex=True) 
df_notna['canton_contrato'] = df_notna['canton_contrato'].replace('GONZANAMÃ\x81', 'GONZANAMA', regex=True) 
df_notna['canton_contrato'].unique()

## Realicemos un proceso similar para los valor con NaN ----------------------------

# Correccion encoding provincia_contrato
df['provincia_contrato'] = df['provincia_contrato'].replace('SANTO DOMINGO DE LOS TSÃ\x81CHILAS', 'SANTO DOMINGO DE LOS TSACHILAS', regex=True) 
df['provincia_contrato'] = df['provincia_contrato'].replace('CAÃ\x91AR (REGIMEN COSTA)', 'CAÑAR (REGIMEN COSTA)', regex=True) 
df['provincia_contrato'] = df['provincia_contrato'].replace('CAÃ\x91AR', 'CAÑAR', regex=True) 
df['provincia_contrato'] = df['provincia_contrato'].replace('GALÃ\x81PAGOS', 'GALAPAGOS', regex=True) 
df['provincia_contrato'].unique() 

# Correccion encoding provincia_contrato (grupo)
df['provincia_contrato (grupo)'] = df['provincia_contrato (grupo)'].replace('SANTO DOMINGO DE LOS TSÃ\x81CHILAS', 'SANTO DOMINGO DE LOS TSACHILAS', regex=True) 
df['provincia_contrato (grupo)'] = df['provincia_contrato (grupo)'].replace('CAÃ\x91AR', 'CAÑAR', regex=True) 
df['provincia_contrato (grupo)'] = df['provincia_contrato (grupo)'].replace('GALÃ\x81PAGOS', 'GALAPAGOS', regex=True) 
df['provincia_contrato (grupo)'].unique() 

# Correccion encoding canton_contrato 
# Busquemos los que estan mal escritos
list_a = df_notna['canton_contrato'].unique()
# Muestra todos los valores mal escritos.
sub = "Ã"
res = [i for i in list_a if sub in i ]
# ['SANTO DOMINGO DE LOS TSÃ\x81CHILAS',
#  'CAÃ\x91AR',
#  'TULCÃ\x81N',
#  'LA MANÃ\x81',
#  'PIÃ\x91AS',
#  'MARCELINO MARIDUEÃ\x91A',
#  'MACARÃ\x81',
#  'RUMIÃ\x91AHUI',
#  'OÃ\x91A',
#  'BIBLIÃ\x81N',
#  'GONZANAMÃ\x81']
df['canton_contrato'] = df['canton_contrato'].replace('SANTO DOMINGO DE LOS TSÃ\x81CHILAS', 'SANTO DOMINGO DE LOS TSACHILAS', regex=True) 
df['canton_contrato'] = df['canton_contrato'].replace('CAÃ\x91AR', 'CAÑAR', regex=True) 
df['canton_contrato'] = df['canton_contrato'].replace('TULCÃ\x81N', 'TULCAN', regex=True) 
df['canton_contrato'] = df['canton_contrato'].replace('LA MANÃ\x81', 'LA MANA', regex=True) 
df['canton_contrato'] = df['canton_contrato'].replace('PIÃ\x91AS', 'PIÑAS', regex=True) 
df['canton_contrato'] = df['canton_contrato'].replace('MARCELINO MARIDUEÃ\x91A', 'MARCELINO MARIDUEÑA', regex=True) 
df['canton_contrato'] = df['canton_contrato'].replace('MACARÃ\x81', 'MACARA', regex=True) 
df['canton_contrato'] = df['canton_contrato'].replace('RUMIÃ\x91AHUI', 'RUMIÑAHUI', regex=True) 
df['canton_contrato'] = df['canton_contrato'].replace('OÃ\x91A', 'OÑA', regex=True) 
df['canton_contrato'] = df['canton_contrato'].replace('BIBLIÃ\x81N', 'BIBLIAN', regex=True) 
df['canton_contrato'] = df['canton_contrato'].replace('GONZANAMÃ\x81', 'GONZANAMA', regex=True) 
df['canton_contrato'].unique()

teletrabajo_NaN = pd.ExcelWriter('teletrabjo_NaN.xlsx')
df.to_excel(teletrabajo_NaN)
teletrabajo_Not_NaN = pd.ExcelWriter('teletrabajo_Not_NaN.xlsx')
df_notna.to_excel(teletrabajo_Not_NaN)
teletrabajo_NaN.save()
teletrabajo_Not_NaN.save()
1 me gusta

El teletrabajo es un tema muy pertinente que esta sucediendo hoy por hoy en nuestra sociedad. Abarcarian una serie de datos que van descendiendo por el motivo de contexto de la pandemia. Por otro lado, también es un recurso alternativo que siempre se está utilizando cuando aqueja algún tipo de inconveniente social de cualquier índole. Y por último, es una nueva modalidad de trabajo que se proyecta para el futuro laboral.

Hemos decidido utilizar el conjunto de datos relacionado con el Teletrabajo, esto debido a que contiene datos muy interesantes que pueden ser comparados entre sí, ya sea por fechas, por provincias, entre otros.
Otra de las razones por las cuales escogimos dicho conjunto de datos, es porque, los datos que se encuentran dentro del mismo son muy detallados y precisos, facilitándonos su entendimiento.

Despues de una minuciosa inspeccion, se ha decidido trabajar con la bade datos en base al teletrabajo.
Las razones se pueden resumir en las siguientes:

  1. Es una basta base de datos con varias variables y un amplio numero de observaciones.
  2. Comprende informacion de todas las provincias del Ecuador, permitiendo captar la diversidad del pais.
  3. Dada la coyuntura nacional, resulta de gran interes estudiar la evolucion del teletrabajo a traves de los ultimos años y diferentes regiones.

En Python, se procedio a obtener una columna llamada mes de inicio, la cual describe el mes de inicio en el teletrabajo solo que en esta ocasion a diferencia de la columna mes fecha de inicio del teletrabajo, esta en notacion calendario. Para eso me construyo la notacion: Enero para el numero 1, Febrero para el 2, etc.
image