1
respuesta

Aula 5 Clase 03 metodo drop no aplica

Hola al aplicar metodo drop y querer borrar las columnas: 'Unnamed: 0', 'millas_por_ano','ano_del_modelo', el metodo drop no las borras de DataFrame.

Quiero estar seguro de que estoy usando el metodo drop de la manera correcta, porque en la descripcion dice que por defecto inplace esta en False y si lo paso a True entonces si aplica, pero me resulta curioso que a Álvaro si le va bien.

La pregunta es estoy usando bien el metodo o en la version mas actual de pandas funciona asi pandas version 1.4.4 Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad inplace por defecto False

datos.drop(columns=['Unnamed: 0', 'millas_por_ano','ano_del_modelo'], axis=1)
datos.sample(3)

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

cambiando parametro a True inplace por defecto True

datos.drop(columns=['Unnamed: 0', 'millas_por_ano','ano_del_modelo'], axis=1, inplace=True)
datos.sample(3)

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidadGracias, saludos.

1 respuesta

False es el valor por defecto de inplace en la mayoría de métodos que lo implementan. Eso significa que, por defecto, esos métodos van a devolver una copia de los datos que estés manipulando.

No lográs ver los cambios por eso, porque estás intentando aplicar un método que utiliza inplace=False por defecto sin asignar la copia devuelta por el método a una variable antes de intentar visualizar su contenido.

datos.drop(columns=['Unnamed: 0', 'millas_por_ano','ano_del_modelo'], axis=1)
datos.sample(3)

Esto funcionaría si hicieras lo siguiente (supongo que es lo que hizo el instructor y lo que te confunde):

datos2 = datos.drop(columns=['Unnamed: 0', 'millas_por_ano','ano_del_modelo'], axis=1)
datos2.sample(3)

Para evitar tener que asignar el resultado del método a una variable, podés modificar los datos "en el lugar" (traducción al castellando de in place):

datos.drop(columns=['Unnamed: 0', 'millas_por_ano','ano_del_modelo'], axis=1, inplace=True)
datos.sample(3)

Es por eso que acá sí funciona, porque al modificar los datos en el lugar ya no es necesario asignar el resultado del método a una variable.