Cómo aplicar la fórmula de pandas de Python para categorizar individuos basándose en sus muestras de hemoglobina.
Tengo los datos xls (Hoja Principal) adjuntos en la [imagen del archivo xlsx de muestra][1] aquí.
Siendo principiante en Python y Ciencia de Datos, estoy intentando leer las hojas en el archivo xlsx de la siguiente manera:
Cargar pandas
import pandas as pd
# Leer archivo CSV en el DataFrame df
hoja1, hoja2 = None, None
with pd.ExcelFile("blood_data.xlsx") as lector:
hoja1 = pd.read_excel(lector, sheet_name='Hoja Principal')
hoja2 = pd.read_excel(lector, sheet_name='Otra Hoja')
# Mostrar DataFrame
print(hoja1)
Obtengo todas las 110 filas y columnas en la salida, pero quiero filtrar según la condición que se muestra en verde en la captura de pantalla. Hb Masculino 13-17 y Bilirrubina 0.3-1.2. Si los valores no están dentro de ese rango, debo imprimir el nombre del candidato. Por favor, ayúdame a aplicar un filtro basado en múltiples columnas utilizando pandas para lograr mi resultado.
Archivo de entrada de muestra: https://github.com/wittymindstech/medical-data-analysis/blob/main/blood_data.xlsx
Salida: MEHRAWAN, RAKHI, etc.
davy.ai
Para filtrar los datos según las condiciones proporcionadas en la pregunta, se puede utilizar el siguiente código:
Explicación:
pandas
.El archivo de Excel se lee en un DataFrame utilizando la función
read_excel()
.Se definen dos condiciones basadas en las condiciones verdes mencionadas en la pregunta. Esto se hace utilizando los operadores
&
y|
para combinar múltiples condiciones. Se utiliza la funciónstr.contains()
para verificar si la cadena coincide con el rango proporcionado.El DataFrame
df
se filtra según las condiciones anteriores utilizando la técnica de indexación booleana. El DataFrame resultante se almacena en la variablefiltered_df
.Los valores fuera de rango se filtran verificando si la columna
Result
no está dentro del rango proporcionado en la columnaReference Range
. Esto se hace utilizando el operador~
.Se extraen los nombres de los candidatos cuyos valores están fuera del rango de la columna
Candidate Name
y se imprimen en la consola.La salida será una lista de nombres de los candidatos cuyos valores no están dentro del rango especificado.