No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Preparando los datos

5/17
Recursos

Aportes 15

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Otra forma de convetir la columna target a valores n煤mericos

No me agrada

df_data.isnull().sum()

Preferi utilizar las funciones missing que creamos en el curso de imputacion de valores faltantes.

Otra forma de importar la data sin descargarla es usando el API de kaggle

!pip install opendatasets
import opendatasets as od
od.download('https://www.kaggle.com/datasets/blastchar/telco-customer-churn')
df_data = pd.read_csv('/content/telco-customer-churn/WA_Fn-UseC_-Telco-Customer-Churn.csv')

get_dummies duplica los features en 鈥渇eature_yes鈥 y 鈥渇eature_No鈥, esto pudiera ser redundante. si no queremos tener esta 鈥渄uplicidad鈥 podemos utilizar:
df_data_processing = pd.get_dummies(df_data_processing, drop_first=True).

Como propuesta, deber铆an de incluir en la secci贸n de recursos el archivo tipo plantilla. Para que podamos irlo rellenando nosotros

Por el momento los archivos que incluyen ya est谩n respondidos.

errors='coerce'

indica que si no se puede convertir un elemento de la columna TotalCharges a un n煤mero, se debe reemplazar con un valor especial NaN (Not a Number)

Esto se conoce como 鈥渃oerci贸n鈥 porque se est谩 forzando la conversi贸n a un tipo de datos num茅rico, y si no es posible, se est谩 forzando el uso de NaN en su lugar

Hola, yo resolv铆 todo el problema por mi cuenta antes de ver la explicaci贸n, cuando vi que la columna 鈥楾otalCharges鈥 estaba dada como categ贸rica intent茅 convertirla a num茅rica con astype(float),sin embargo, me aparec铆a el problema d que ciertos valores " " no pod铆an ser convertidos a num茅ricos, por lo que lo primero que hice fue determinar que valores estaban como vac铆os en esa columna

Posteriormente proced铆 a eliminar estos valores y a convertir esta columna a num茅rica.


Al final resulta los mismo que hace el profesor usando pd.to_numeric ,solo que haciendo esto los valores vac铆os pasan a ser NaN y luego se tienen que eliminar, lo comprob茅 creando otro dataset y comparando la columnas donde anteriormente hab铆an valores vac铆os

Esto es lo que hace la variable get.dummies m谩s detalladamente:

  • pd.get_dummies() es una funci贸n de la biblioteca pandas en Python que se utiliza para realizar una codificaci贸n one-hot de variables categ贸ricas en un DataFrame. La codificaci贸n one-hot es un proceso que convierte variables categ贸ricas en un conjunto de variables binarias (0 o 1) que representan la presencia o ausencia de una categor铆a en los datos originales. Este enfoque es com煤nmente utilizado en el preprocesamiento de datos para que los algoritmos de aprendizaje autom谩tico puedan trabajar con variables categ贸ricas.

Aqu铆 hay una descripci贸n de c贸mo funciona pd.get_dummies():

  • Entrada: La funci贸n toma como entrada un DataFrame de pandas que contiene una o m谩s columnas con variables categ贸ricas que deseas codificar.

  • Salida: pd.get_dummies() produce un nuevo DataFrame donde las columnas categ贸ricas originales se han convertido en columnas binarias (0 o 1), una columna por categor铆a. Cada columna binaria representa una categor铆a espec铆fica y se llama 鈥渋ndicador鈥 o 鈥渄ummy variable鈥. Cuando una fila tiene una categor铆a, su columna correspondiente tendr谩 un valor de 1; de lo contrario, ser谩 0.

Por ejemplo, si tienes una columna llamada 鈥淐olor鈥 con valores categ贸ricos como 鈥淩ojo鈥, 鈥淰erde鈥 y 鈥淎zul鈥, pd.get_dummies() generar谩 tres nuevas columnas llamadas 鈥淐olor_Rojo鈥, 鈥淐olor_Verde鈥 y 鈥淐olor_Azul鈥, y asignar谩 1 o 0 seg煤n el color presente en cada fila.

Este proceso es 煤til en el an谩lisis de datos y en la construcci贸n de modelos de aprendizaje autom谩tico, ya que permite trabajar con variables categ贸ricas en algoritmos que requieren datos num茅ricos, como regresi贸n lineal, regresi贸n log铆stica y otros modelos. La codificaci贸n one-hot evita la asignaci贸n incorrecta de importancia num茅rica a las categor铆as y garantiza que cada categor铆a se trate de manera independiente en el modelo.

Recordemos que:

df_data.head(5)

es igual a escribir:

df_data.head()

Interesante este metodo de conversion, no sabia nada. Ahora si tengo ganas de mejorar mis capacidades.

porque cuando realiza el get\_dummies las variables categoricas les cambia el nombre, agregando un (\_) mas el nombre de la variable? me genera el proble de crear muchisimas columnas mas de las que tiene el dataset original, porque=>

Esto es lo que hace el comando dropna m谩s el arugmento inpalce_True =

  • inplace=True: Este argumento se utiliza para indicar que deseas realizar la eliminaci贸n de las filas directamente en el DataFrame df_data en su lugar. Si inplace est谩 configurado en True, los cambios se aplican al DataFrame original y no se crea un nuevo DataFrame. Si se establece en False o no se proporciona, se devuelve un nuevo DataFrame con las filas eliminadas, y el DataFrame original permanece sin cambios.

Entonces, cuando ejecutas df_data.dropna(inplace=True), elimina todas las filas en df_data que contienen valores nulos y aplica este cambio directamente en el DataFrame original df_data. El resultado es que df_data ahora contendr谩 solo las filas que no tienen valores nulos en ninguna de sus columnas. Las filas con valores nulos se han eliminado del DataFrame.

Comandos similares a la misma familia de comandos como dropna:

  • .fillna(): Este m茅todo se utiliza para rellenar valores nulos con un valor espec铆fico o una estrategia de relleno. Puedes proporcionar un valor constante, un diccionario de relleno por columna o utilizar m茅todos de interpolaci贸n.

  • .isnull() y .notnull(): Estos m茅todos te permiten crear m谩scaras booleanas que indican d贸nde se encuentran los valores nulos y no nulos en un DataFrame. Son 煤tiles para filtrar o seleccionar datos basados en la presencia o ausencia de valores nulos.

  • .interpolate(): Este m茅todo se utiliza para realizar la interpolaci贸n de valores nulos en una serie o DataFrame. La interpolaci贸n calcula valores intermedios para rellenar los valores nulos bas谩ndose en los valores adyacentes.

  • .drop(): Aunque su nombre es similar al de .dropna(), el m茅todo .drop() se utiliza para eliminar filas o columnas espec铆ficas en un DataFrame, pero puedes especificar etiquetas de fila o columna en lugar de valores nulos.

  • .replace(): Este m茅todo se utiliza para reemplazar valores espec铆ficos, incluidos los valores nulos, por otros valores en un DataFrame.

  • .ffill() y .bfill(): Estos m茅todos se utilizan para rellenar valores nulos hacia adelante (ffill) o hacia atr谩s (bfill) utilizando el valor m谩s cercano en la misma columna.

  • .melt(): Esta funci贸n se utiliza para realizar una operaci贸n de 鈥渕elt鈥 o 鈥渦npivot鈥 en un DataFrame, lo que puede ayudar a lidiar con datos faltantes.

  • .combine_first(): Este m茅todo se utiliza para combinar dos DataFrames, rellenando los valores nulos en el DataFrame original con los valores del otro DataFrame.

Estos son algunos ejemplos de los m茅todos y funciones disponibles en pandas para el manejo de valores nulos y la limpieza de datos. La elecci贸n del m茅todo adecuado depender谩 de la naturaleza de tus datos y del tipo de operaci贸n que necesites realizar.

Tan r谩pido que hizo la limpieza y lo de m谩s en un video de 14 minutos!, si hubiera empezado por estos videos no hubiera perdido mi tiempo en los de limpieza instalando paquetes que probablemente nunca utilizar茅

Yo converti los valores del target usando where de numpy que es igual a los condicionales de excel

df_data['Churn'] = df_data['Churn'].apply(lambda x: np.where(x == 'Yes', 1, 0))