Curso
A menudo, un Marco de datos contendrá columnas que no son útiles para tu análisis. Tales columnas deben eliminarse del Marco de datos para que te resulte más fácil centrarte en las columnas restantes.
Las columnas pueden eliminarse especificando los nombres de las etiquetas y los ejes correspondientes, o especificando directamente los nombres de los índices o las columnas. Si utilizas un índice múltiple, las etiquetas de distintos niveles pueden eliminarse especificando el nivel.
.drop() Método
Comparemos los recuentos de valores perdidos con la forma del marco de datos. Observarás que la columna county_name contiene tantos valores perdidos como filas, lo que significa que sólo contiene valores perdidos.
ri.isnull().sum()
state 0
stop_date 0
stop_time 0
county_name 91741
driver_gender 5205
driver_race 5202
...
ri.shape
91741, 15
Como no contiene información útil, esta columna puede eliminarse mediante el método .drop().
Además de especificar el nombre de la columna, tienes que especificar que estás eliminando del eje de columnas y que quieres que la operación se produzca en su lugar, lo que evita una sentencia de asignación como la que se muestra a continuación:
ri.drop('county_name',
axis='columns', inplace=True)
.dropna() Método
El método .dropna() es una buena forma de descartar filas en función de la presencia de valores perdidos en esa fila.
Por ejemplo, utilizando el conjunto de datos anterior, supongamos que las columnas fecha_parada y hora_parada son fundamentales para nuestro análisis y, por tanto, una fila no nos sirve de nada sin esos datos.
ri.head()
state stop_date stop_time driver_gender driver_race
0 RI 2005-01-04 12:55 M White
1 RI 2005-01-23 23:15 M White
2 RI 2005-02-17 04:15 M White
3 RI 2005-02-20 17:15 M White
4 RI 2005-02-24 01:20 F White
Podemos decirle a pandas que elimine todas las filas en las que falte un valor en la columna stop_date o stop_time. Como especificamos un subconjunto, el método .dropna() sólo tiene en cuenta estas dos columnas a la hora de decidir qué filas eliminar.
ri.dropna(subset=['stop_date', 'stop_time'], inplace=True)
Ejemplo interactivo de soltar columnas
En este ejemplo, eliminarás la columna county_name porque sólo contiene valores perdidos, y eliminarás la columna state porque todas las paradas de tráfico tuvieron lugar en un estado (Rhode Island). Por tanto, estas columnas pueden eliminarse porque no contienen información útil. El número de valores que faltan en cada columna se ha impreso en la consola para ti.
- Examina la página
.shapedel DataFrame para averiguar el número de filas y columnas. - Elimina las columnas
county_nameystatepasando los nombres de las columnas al método.drop()como una lista de cadenas. - Examina de nuevo la página
.shapepara comprobar que ahora hay dos columnas menos.
# Examine the shape of the DataFrame
print(ri.shape)
# Drop the 'county_name' and 'state' columns
ri.drop(['county_name', 'state'], axis='columns', inplace=True)
# Examine the shape of the DataFrame (again)
print(ri.shape)
Cuando ejecutas el código anterior, se obtiene el siguiente resultado:
(91741, 15)
(91741, 13)
Para saber más sobre cómo soltar columnas en pandas, consulta este vídeo de nuestro curso Introducción a la visualización de datos con ggplot2.
Este contenido está tomado del curso Introducción a la Visualización de Datos con ggplot2 de DataCamp, impartido por Kevin Markham.
Consulta nuestro Tutorial Pandas Añadir Columna.
