es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Recorre el dataframe en Python para seleccionar una fila específica.

Tengo datos de series de tiempo de 5864 pacientes en la UCI y mi dataframe se ve así. Cada fila representa la permanencia del paciente en la UCI en una hora determinada.

HR SBP DBP ICULOS Sepsis P_ID
92 120 80 1 0 0
98 115 85 2 0 0
93 125 75 3 1 0
95 130 90 4 1 0
102 120 80 1 0 1
109 115 75 2 0 1
94 135 100 3 0 1
97 100 70 4 1 1
85 120 80 5 1 1
88 115 75 6 1 1
93 125 85 1 0 2
78 130 90 2 0 2
115 140 110 3 0 2
102 120 80 4 0 2
98 140 110 5 1 2

Quiero seleccionar los ICULOS donde la Sepsis = 1 (primera hora solamente) basado en el ID del paciente. Por ejemplo, para el P_ID=0, la Sepsis = 1 en ICULOS=3. Lo hice en un solo paciente (el dataframe con los datos de un solo paciente) usando el siguiente código:

x = df[df[‘Sepsis’] == 1][“ICULOS”].values[0]
print(“ICULOS donde la etiqueta de Sepsis es igual a 1 es:”, x)

Resultado

ICULOS donde la etiqueta de Sepsis es igual a 1 es: 46

Si quiero hacerlo para cada P_ID, tendría que hacer esto 5864 veces. ¿Alguien puede ayudarme con el código usando un bucle? El bucle irá a cada P_ID y luego dará el resultado de ICULOS donde la Sepsis = 1. Espero su ayuda.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, podemos usar un bucle para comprobar los ICULOS donde la Sepsis = 1 para cada paciente en el conjunto de datos. Aquí está el código para ello:

    for pid in df["P_ID"].unique(): # recorrer cada ID de paciente único
        patient_df = df[df["P_ID"] == pid] # crear un nuevo dataframe para el paciente actual
    
        # verificar si la etiqueta de sepsis es 1 en la primera hora e imprimir ICULOS si es verdadero
        if patient_df[patient_df["ICULOS"] == 1]["Sepsis"].values[0] == 1:
            print(f"Paciente {pid}: ICULOS en el que la etiqueta de Sepsis = 1 es {patient_df[patient_df['Sepsis'] == 1]['ICULOS'].values[0]}")
        else:
            print(f"Paciente {pid}: Etiqueta de sepsis = 0 en la primera hora")
    

    Esto recorrerá cada ID de paciente único en el dataframe y creará un nuevo dataframe que contenga solo los datos de ese paciente. Luego, verificará si la etiqueta de Sepsis es 1 en la primera hora de la estadía del paciente en la UCI e imprimirá el valor ICULOS si es así. Si la etiqueta de Sepsis es 0 en la primera hora, imprimirá un mensaje que lo indique.

Comments are closed.