El siguiente código:
df = df.drop('market', 1)genera la advertencia:
Advertencia futura: en una versión futura de pandas, todos los argumentos de DataFrame.drop, excepto el argumento 'etiquetas', serán solo palabras clave
market es la columna que queremos eliminar, y pasamos el 1 como segundo parámetro para el eje (0 para índice, 1 para columnas, así que pasamos 1).
¿Cómo podemos cambiar esta línea de código ahora para que no sea un problema en la versión futura de pandas / para resolver el mensaje de advertencia ahora?
De la documentación, pandas.DataFrame.drop tiene los siguientes parámetros:
Parámetros
etiquetas : etiqueta única o índice similar a una lista o etiquetas de columna para soltar.
eje : {0 o 'índice', 1 o 'columnas'}, por defecto 0 Si se eliminan etiquetas del índice (0 o 'índice') o columnas (1 o 'columnas').
índice : etiqueta única o alternativa similar a una lista para especificar el eje (etiquetas, eje = 0 es equivalente a índice = etiquetas).
Columnas : etiqueta única o alternativa similar a una lista para especificar el eje (etiquetas, eje = 1 es equivalente a columnas = etiquetas).
level : int o nombre del nivel, opcional Para MultiIndex, nivel del que se eliminarán las etiquetas.
inplace : bool, default False Si es False, devuelve una copia. De lo contrario, realice la operación en el lugar y devuelva Ninguno.
errores : {'ignorar', 'aumentar'}, predeterminado 'aumentar' Si 'ignorar', se suprime el error y solo se eliminan las etiquetas existentes.
En el futuro, solo las labels (el primer parámetro) pueden ser posicionales.
Entonces, para este ejemplo, el código de drop debería ser el siguiente:
df = df.drop('market', axis=1) o (más legiblemente) con columns :
df = df.drop(columns='market')El motivo de esta advertencia es que, probablemente, en futuras versiones, pandas cambiará *args a **kwargs .
Eso significa que sería necesario especificar el axis , así que intente:
df.drop('market', axis=1)Como se menciona en la documentación :
**kwargs le permite pasar argumentos de longitud variable con palabras clave a una función. Debe usar **kwargs si desea manejar argumentos con nombre en una función.
También recientemente con las nuevas versiones (a partir de la 0.21.0), puede especificar columns o index como este:
df.drop(columns='market')Ver más aquí .