Selección de datos
Contents
Selección de datos#
Una operación fundamental cuando trabajamos con datos consiste en seleccionar los datos que nos interesan. Por ejemplo, en los datos de casos de Covid que hemos utilizados, podremos seleccionar de ellos cuáles corresponden a mujeres y a partir de allí realizar otras operaciones de datos. Es un ejemplo simple, pero es una operación común que vamos a realizar continuamente.
El método .loc#
Este es la forma más intuitiva de realizar una selección en nuestro conjunto de datos. Lo que se consigue con este método es filtrar por coincidencias en una columna a partir de las condiciones que se especifiquen. Por ejemplo:
casos_mujeres = covid_nacional.loc[covid_nacional['sexo'] == 'MUJER']
casos_mujeres.head()
| Unnamed: 0 | fecha_actualizacion | id_registro | origen | sector | entidad_um | sexo | entidad_nac | entidad_res | municipio_res | ... | otro_caso | toma_muestra_lab | resultado_lab | toma_muestra_antigeno | resultado_antigeno | clasificacion_final | migrante | pais_nacionalidad | pais_origen | uci | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 4 | 5 | 2022-06-26 | 13c92b | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | CIUDAD DE MÉXICO | NaN | NaN | ... | SI | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 5 | 6 | 2022-06-26 | 04f190 | FUERA DE USMER | ISSSTE | CIUDAD DE MÉXICO | MUJER | CIUDAD DE MÉXICO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 7 | 8 | 2022-06-26 | 0ba73d | FUERA DE USMER | ISSSTE | CIUDAD DE MÉXICO | MUJER | QUERÉTARO | MÉXICO | NAUCALPAN DE JUÁREZ | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 9 | 10 | 2022-06-26 | 0a98b4 | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | MICHOACÁN DE OCAMPO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | SI | POSITIVO A SARS-COV-2 | CASO DE SARS-COV-2 CONFIRMADO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 11 | 12 | 2022-06-26 | 112072 | FUERA DE USMER | ISSSTE | CIUDAD DE MÉXICO | MUJER | CIUDAD DE MÉXICO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
5 rows × 41 columns
En este caso, le dijimos a pandas que busque en la columna sexo los valores que sean iguales a MUJER y los muestre. Como habrás notado, el operador == indica igualdad. Este es un operador lógico, por lo que no es necesario que el valor a comparar sea numérico. Podemos utilizar el mismo método para localizar un valor numérico, por ejemplo, las mujeres que tengan edad de 25 años:
mujeres_25 = casos_mujeres.loc[casos_mujeres['edad'] == 25]
mujeres_25
| Unnamed: 0 | fecha_actualizacion | id_registro | origen | sector | entidad_um | sexo | entidad_nac | entidad_res | municipio_res | ... | otro_caso | toma_muestra_lab | resultado_lab | toma_muestra_antigeno | resultado_antigeno | clasificacion_final | migrante | pais_nacionalidad | pais_origen | uci | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 76 | 77 | 2022-06-26 | 1eaf9d | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | CIUDAD DE MÉXICO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 120 | 121 | 2022-06-26 | c54e7c | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | CIUDAD DE MÉXICO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 176 | 177 | 2022-06-26 | 4a7184 | FUERA DE USMER | ISSSTE | CIUDAD DE MÉXICO | MUJER | CIUDAD DE MÉXICO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 355 | 356 | 2022-06-26 | 71baef | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | MÉXICO | MÉXICO | CHALCO | ... | SI | NO | NO APLICA (CASO SIN MUESTRA) | SI | POSITIVO A SARS-COV-2 | CASO DE SARS-COV-2 CONFIRMADO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 750 | 751 | 2022-06-26 | 65cd8e | USMER | SSA | CIUDAD DE MÉXICO | MUJER | CIUDAD DE MÉXICO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1322903 | 1322904 | 2022-06-26 | m10d115 | FUERA DE USMER | SSA | MÉXICO | MUJER | CIUDAD DE MÉXICO | NaN | NaN | ... | NO ESPECIFICADO | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 1323061 | 1323062 | 2022-06-26 | m1c3e25 | FUERA DE USMER | SSA | MÉXICO | MUJER | MÉXICO | NaN | NaN | ... | NO ESPECIFICADO | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 1323178 | 1323179 | 2022-06-26 | m0cbd03 | FUERA DE USMER | SSA | MÉXICO | MUJER | MÉXICO | NaN | NaN | ... | NO ESPECIFICADO | SI | RESULTADO NO ADECUADO | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 1323288 | 1323289 | 2022-06-26 | m04a712 | FUERA DE USMER | SSA | MÉXICO | MUJER | CIUDAD DE MÉXICO | NaN | NaN | ... | NO ESPECIFICADO | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 1323350 | 1323351 | 2022-06-26 | m00101e | FUERA DE USMER | PRIVADA | MÉXICO | MUJER | CIUDAD DE MÉXICO | NaN | NaN | ... | NO ESPECIFICADO | NO | NO APLICA (CASO SIN MUESTRA) | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
16002 rows × 41 columns
Para resaltar
Nota que en el caso del valor numérico no lo incluimos entre paréntesis. Eso es fundamental porque, como recordarás, en la columna
edadel tipo de dato es numérico (int64).Para evitar procesar todo el dataframe nuevamente, lo que hicimos fue acotar el grupo que hicimos con el primer resultado (
casos_mujeres).
En ocasiones, vamos a querer descartar un valor en particular de una columna que contiene muchos elementos. Por ejemplo, en la columna entidad_nac (entidad de nacimiento de la persona) podemos querer seleccionar los valores que no sean CIUDAD DE MÉXICO:
entidad_nac_no_cdmx = casos_mujeres.loc[casos_mujeres['entidad_nac'] != 'CIUDAD DE MÉXICO']
entidad_nac_no_cdmx
| Unnamed: 0 | fecha_actualizacion | id_registro | origen | sector | entidad_um | sexo | entidad_nac | entidad_res | municipio_res | ... | otro_caso | toma_muestra_lab | resultado_lab | toma_muestra_antigeno | resultado_antigeno | clasificacion_final | migrante | pais_nacionalidad | pais_origen | uci | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 7 | 8 | 2022-06-26 | 0ba73d | FUERA DE USMER | ISSSTE | CIUDAD DE MÉXICO | MUJER | QUERÉTARO | MÉXICO | NAUCALPAN DE JUÁREZ | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 9 | 10 | 2022-06-26 | 0a98b4 | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | MICHOACÁN DE OCAMPO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | SI | POSITIVO A SARS-COV-2 | CASO DE SARS-COV-2 CONFIRMADO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 12 | 13 | 2022-06-26 | 044350 | FUERA DE USMER | ISSSTE | CIUDAD DE MÉXICO | MUJER | MÉXICO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO |
| 22 | 23 | 2022-06-26 | 375634 | USMER | ISSSTE | CIUDAD DE MÉXICO | MUJER | MÉXICO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 24 | 25 | 2022-06-26 | 3d59ea | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | GUERRERO | MÉXICO | ZUMPANGO | ... | SI | NO | NO APLICA (CASO SIN MUESTRA) | SI | POSITIVO A SARS-COV-2 | CASO DE SARS-COV-2 CONFIRMADO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1323465 | 1323466 | 2022-06-26 | m0b9e6b | FUERA DE USMER | SSA | MÉXICO | MUJER | GUERRERO | NaN | NaN | ... | NO ESPECIFICADO | NO | NO APLICA (CASO SIN MUESTRA) | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 1323467 | 1323468 | 2022-06-26 | m10ccd6 | FUERA DE USMER | SSA | MÉXICO | MUJER | MÉXICO | NaN | NaN | ... | NO ESPECIFICADO | NO | NO APLICA (CASO SIN MUESTRA) | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 1323483 | 1323484 | 2022-06-26 | m00d216 | FUERA DE USMER | SSA | MÉXICO | MUJER | MICHOACÁN DE OCAMPO | NaN | NaN | ... | NO ESPECIFICADO | SI | RESULTADO NO ADECUADO | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 1323487 | 1323488 | 2022-06-26 | m0c8c4a | FUERA DE USMER | SSA | MÉXICO | MUJER | MÉXICO | NaN | NaN | ... | NO ESPECIFICADO | SI | RESULTADO NO ADECUADO | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 1323491 | 1323492 | 2022-06-26 | m139158 | FUERA DE USMER | SSA | MÉXICO | MUJER | GUANAJUATO | NaN | NaN | ... | NO ESPECIFICADO | NO | NO APLICA (CASO SIN MUESTRA) | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
144256 rows × 41 columns
Esta forma de seleccionar información es muy relevante cuando solamente nos interesa una parte de la información del conjunto de datos para analizar. Por ejemplo, si queremos averiguar los casos por un Estado en un conjunto de datos nacional, o las cifras nacionales en uno global.
Método .loc en múltiples columnas#
Los casos anteriores son bastante simples, y si te das cuenta, lo que hicimos fue hacer tres grupos para llegar al resultado deseado. Pandas nos ofrece la posibilidad de hacer una selección en múltiples columnas. Por ejemplo, si queremos seleccionar los casos de mujeres de 25 años de edad, nacidas en México, y que no sean de CDMX:
casos_mujeres_25_mexico = casos_mujeres.loc[(casos_mujeres['edad'] == 25) & (casos_mujeres['entidad_nac'] == 'MÉXICO') & (casos_mujeres['entidad_nac'] != 'CIUDAD DE MÉXICO')]
casos_mujeres_25_mexico
| Unnamed: 0 | fecha_actualizacion | id_registro | origen | sector | entidad_um | sexo | entidad_nac | entidad_res | municipio_res | ... | otro_caso | toma_muestra_lab | resultado_lab | toma_muestra_antigeno | resultado_antigeno | clasificacion_final | migrante | pais_nacionalidad | pais_origen | uci | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 355 | 356 | 2022-06-26 | 71baef | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | MÉXICO | MÉXICO | CHALCO | ... | SI | NO | NO APLICA (CASO SIN MUESTRA) | SI | POSITIVO A SARS-COV-2 | CASO DE SARS-COV-2 CONFIRMADO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 1421 | 1422 | 2022-06-26 | 7a7ccb | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | MÉXICO | MÉXICO | NEZAHUALCÓYOTL | ... | SI | NO | NO APLICA (CASO SIN MUESTRA) | SI | POSITIVO A SARS-COV-2 | CASO DE SARS-COV-2 CONFIRMADO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 2446 | 2447 | 2022-06-26 | b90a4e | FUERA DE USMER | IMSS | CIUDAD DE MÉXICO | MUJER | MÉXICO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | SI | POSITIVO A SARS-COV-2 | CASO DE SARS-COV-2 CONFIRMADO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 2815 | 2816 | 2022-06-26 | dc9510 | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | MÉXICO | MÉXICO | LA PAZ | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 2939 | 2940 | 2022-06-26 | 92801c | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | MÉXICO | NaN | NaN | ... | SI | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1319471 | 1319472 | 2022-06-26 | g0c9923 | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | MÉXICO | NaN | NaN | ... | SI | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 1320074 | 1320075 | 2022-06-26 | g029f84 | FUERA DE USMER | PRIVADA | CIUDAD DE MÉXICO | MUJER | MÉXICO | MÉXICO | NEZAHUALCÓYOTL | ... | SI | NO | NO APLICA (CASO SIN MUESTRA) | SI | POSITIVO A SARS-COV-2 | CASO DE SARS-COV-2 CONFIRMADO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 1321052 | 1321053 | 2022-06-26 | g1e1667 | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | MÉXICO | MÉXICO | TLALNEPANTLA DE BAZ | ... | SI | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 1323061 | 1323062 | 2022-06-26 | m1c3e25 | FUERA DE USMER | SSA | MÉXICO | MUJER | MÉXICO | NaN | NaN | ... | NO ESPECIFICADO | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 1323178 | 1323179 | 2022-06-26 | m0cbd03 | FUERA DE USMER | SSA | MÉXICO | MUJER | MÉXICO | NaN | NaN | ... | NO ESPECIFICADO | SI | RESULTADO NO ADECUADO | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
2126 rows × 41 columns
Si observas con atención, notarás que lo que hicimos fue encadenar varias peticiones en una sola. Para ello nos servimos del operador & (‘and’) que es un operador lógico 1.
O, los casos que corresponden a mujeres o migrantes. En este caso usaremos el operador |:
casos_mujeres_migrantes = covid_nacional.loc[(covid_nacional['sexo'] == 'MUJER') | (covid_nacional['migrante'] == 'SI')]
print(f'total casos: {casos_mujeres_migrantes.shape[0]}')
casos_mujeres_migrantes.head()
total casos: 735841
| Unnamed: 0 | fecha_actualizacion | id_registro | origen | sector | entidad_um | sexo | entidad_nac | entidad_res | municipio_res | ... | otro_caso | toma_muestra_lab | resultado_lab | toma_muestra_antigeno | resultado_antigeno | clasificacion_final | migrante | pais_nacionalidad | pais_origen | uci | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 4 | 5 | 2022-06-26 | 13c92b | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | CIUDAD DE MÉXICO | NaN | NaN | ... | SI | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 5 | 6 | 2022-06-26 | 04f190 | FUERA DE USMER | ISSSTE | CIUDAD DE MÉXICO | MUJER | CIUDAD DE MÉXICO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 7 | 8 | 2022-06-26 | 0ba73d | FUERA DE USMER | ISSSTE | CIUDAD DE MÉXICO | MUJER | QUERÉTARO | MÉXICO | NAUCALPAN DE JUÁREZ | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 9 | 10 | 2022-06-26 | 0a98b4 | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | MUJER | MICHOACÁN DE OCAMPO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | SI | POSITIVO A SARS-COV-2 | CASO DE SARS-COV-2 CONFIRMADO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 11 | 12 | 2022-06-26 | 112072 | FUERA DE USMER | ISSSTE | CIUDAD DE MÉXICO | MUJER | CIUDAD DE MÉXICO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | NO | NO APLICA (CASO SIN MUESTRA) | CASO SOSPECHOSO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
5 rows × 41 columns
Notarás que se regresa una cantidad diferente de filas dependiendo del condicional. Esto simplemente se debe a que estamos utilizando un operador lógico. Así, pandas selecciona la información según lo siguiente2:
busca (
loc) las filas en la columnasexoque cumplen con la condición'MUJER'y con la condición'SI'en la columnamigrante. Todas las filas que no cumplan con esa condición en ambas columnas serán descartadas.busca las filas de la columnna
sexoque cumplan con la condición'MUJER'o las filas de la columnamigranteque cumplan con la condición'SI'. En este caso, solamente descarta las filas que no cumplan con una de las condiciones. Por esa razón nos devolverá todos los casos donde aparezca'MUJER'en la columnasexoy todos los casos donde aparezca'SI'en la columnamigrante.
El método .iloc#
El método .iloc permite seleccionar filas y columnas por su índice. Por ejemplo, si quisiera seleccionar las tres primeras filas del conjunto de datos:
tres_filas = covid_nacional.iloc[:3]
tres_filas
| Unnamed: 0 | fecha_actualizacion | id_registro | origen | sector | entidad_um | sexo | entidad_nac | entidad_res | municipio_res | ... | otro_caso | toma_muestra_lab | resultado_lab | toma_muestra_antigeno | resultado_antigeno | clasificacion_final | migrante | pais_nacionalidad | pais_origen | uci | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 2022-06-26 | 0793b8 | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | HOMBRE | CIUDAD DE MÉXICO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 1 | 2 | 2022-06-26 | 0fef08 | USMER | SSA | CIUDAD DE MÉXICO | HOMBRE | CIUDAD DE MÉXICO | NaN | NaN | ... | NO | SI | POSITIVO A SARS-COV-2 | NO | NO APLICA (CASO SIN MUESTRA) | CASO DE SARS-COV-2 CONFIRMADO | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
| 2 | 3 | 2022-06-26 | 11e31a | FUERA DE USMER | SSA | CIUDAD DE MÉXICO | HOMBRE | CIUDAD DE MÉXICO | NaN | NaN | ... | NO | NO | NO APLICA (CASO SIN MUESTRA) | SI | NEGATIVO A SARS-COV-2 | NEGATIVO A SARS-COV-2 | NO ESPECIFICADO | MÉXICO | NO APLICA | NO APLICA |
3 rows × 41 columns
Ahora, podríamos seleccionar las columnas 1 a 5 de las filas 1 a 3:
filas_columnas = covid_nacional.iloc[:3, 1:5]
filas_columnas
| fecha_actualizacion | id_registro | origen | sector | |
|---|---|---|---|---|
| 0 | 2022-06-26 | 0793b8 | FUERA DE USMER | SSA |
| 1 | 2022-06-26 | 0fef08 | USMER | SSA |
| 2 | 2022-06-26 | 11e31a | FUERA DE USMER | SSA |
En información muy bien estructurada, este método permite acceder a información sin preocuparnos por el tipo de dato o la forma en la cual fue escrita la celda. En general, si la información es creada a través de un gestor de base de datos el método .iloc puede ser muy útil. Es además más rápido que el método .loc, puesto que no tiene que buscar coincidencias sino seleccionar información dentro de una matriz.
Notas#
- 1
En Python el posible utilizar el operador lógico
and, pero enpandasno es permitido. Si quieres profundizar sobre esto puedes consultar el artículo de Àlex Escolà Nixon en Towards Data Science.- 2
En este curso no podemos profundizar en lógica y teoría de conjuntos, pero puedo recomendar el primer capítulo del libro de [Juola and Ramsay, 2017] para una introducción bastante comprensible de la lógica. Para la teoría de conjuntos, el capítulo de [Jannidis and Flanders, 2019] es una introducción sencilla y completa.