Segmentar la información
Contents
Segmentar la información#
No necesariamente es el primer paso para la limpieza de datos, pero es relevante filtrar la información para tener solamente aquella que nos sea de utilidad.
En el ejercicio de unión del dataframe, el resultado fue de un conjunto de datos con 59 columnas. Como vimos, algunas de estas no son particularmente útiles para nuestro análisis e incluso pueden derivar en errores.
Vamos entonces a segmentar la información de cada uno de nuestros dataframes para trabajar únicamente con la información que nos interesa para el ejercicio, básicamente, las variables con información socioeconómica.
Una aclaración
Obviamente este es un ejemplo de segmentación con unas variables que son de interés. Pero podrías querer en cambio revisar las correlaciones entre enfermedades previas y contagios o defunciones por Covid, en ese caso, las variables socioeconómicas no serían tan relevantes.
En el caso de covid_nacional
nos interesa:
sexo
edad
entidad_nacimiento
municipio_residencia
indigena
nacionalidad
migrante
pais_nacionalidad
fecha_ingreso
fecha_sintomas
fecha_def
Y para el caso de areas_inegi
únicamente nos interesa:
municipio_residencia
Lat_Decimal
Lon_Decimal
Y de este caso nos interesa además solamente las filas correspondan a la Cve_Loc
igual a 1
.
Segmentar por nombre de columna#
Esta es una forma muy sencilla de segmentar la información. Simplemente, creamos una lista con las columnas que queremos y las asignamos a un nuevo dataframe, así:
muestra_covid = covid_nacional[['sexo', 'edad', 'entidad_nacimiento', 'municipio_residencia', 'indigena', 'nacionalidad', 'migrante', 'pais_nacionalidad', 'fecha_ingreso', 'fecha_sintomas', 'fecha_def']]
muestra_covid.head()
sexo | edad | entidad_nacimiento | municipio_residencia | indigena | nacionalidad | migrante | pais_nacionalidad | fecha_ingreso | fecha_sintomas | fecha_def | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | HOMBRE | 43 | CIUDAD DE MÉXICO | NaN | NO | MEXICANA | NO ESPECIFICADO | MÉXICO | 2022-05-03 | 2022-05-03 | NaN |
1 | HOMBRE | 39 | CIUDAD DE MÉXICO | NaN | NO | MEXICANA | NO ESPECIFICADO | MÉXICO | 2022-01-13 | 2022-01-10 | NaN |
2 | HOMBRE | 55 | CIUDAD DE MÉXICO | NaN | NO | MEXICANA | NO ESPECIFICADO | MÉXICO | 2022-01-12 | 2022-01-12 | NaN |
3 | HOMBRE | 54 | CIUDAD DE MÉXICO | NaN | NO | MEXICANA | NO ESPECIFICADO | MÉXICO | 2022-02-20 | 2022-02-13 | NaN |
4 | MUJER | 41 | CIUDAD DE MÉXICO | NaN | NO | MEXICANA | NO ESPECIFICADO | MÉXICO | 2022-01-12 | 2022-01-10 | NaN |
En este caso, únicamente necesitamos indicar las columnas que queremos. Incluso podemos aprovechar y modificar el orden de aparición de las columnas.
¡Cuidado!
La lista de columnas en pandas
se hace en corchetes rectos dobles:
[['item1', 'item2', 'item3']]
Si lo haces de la forma tradicional (con corchetes rectos simples), tendrás un error
Segmentar por columna y condición#
En este caso, combinaremos el método .loc
con la segmentación en columnas, así:
geolocalizacion = areas_inegi.loc[areas_inegi['Cve_Loc'] == 1, ['municipio_residencia', 'Lat_Decimal', 'Lon_Decimal']]
geolocalizacion.head()
municipio_residencia | Lat_Decimal | Lon_Decimal | |
---|---|---|---|
0 | Aguascalientes | 21.879823 | -102.296047 |
717 | Asientos | 22.238317 | -102.089275 |
959 | Calvillo | 21.846907 | -102.718751 |
1254 | Cosío | 22.366409 | -102.300044 |
1348 | Jesús María | 21.961273 | -102.343416 |
Este es un método bastante poderoso de pandas
ya que nos ahorra varios pasos. En una misma línea, hacemos la búsqueda por coincidencia (.loc
) y luego, separada por una coma, indicamos las columnas que queremos que regrese.
¿por qué esta lista no tiene corchetes dobles?
Cuando le decimos a pandas
que nos devuelva una serie de columnas, en realidad estamos usando un método .loc
, aunque no lo declaremos de forma explícita. De hecho, podríamos decir:
df.loc[:,'col1', 'col2', 'col3']
Y sería el mismo resultado que
df[['col1', 'col2', 'col3']]
Tenemos ahora dos conjuntos de datos mucho más manejables que antes. Con esto podremos pasar al siguiente paso, que consiste en lidiar con datos vacíos.