¿Cómo puedo convertir 120/80 en dos columnas (120 y 80)?

Tengo una columna de presiones sanguíneas que se lee como ##/##, todo lo que quiero hacer esfilir el numerador en una columna y el denominador en otra columna.

¿Por favor ayuda?

Pregunta hecha hace 3 años, 4 meses, 28 días - Por byteninja8245


4 Respuestas:

  • library(dplyr)
    library(stringr)
    
    df = data.frame(
    first_bp = c("120/80","90/60"),
    id = c("0001234","0001235"),
    amount = c(18.50, -18.50), stringsAsFactors = F)
      
     
    df %>%  
    mutate(s0 = str_split(first_bp,"/")) %>%
    rowwise() %>%
    mutate(systole = as.numeric(s0[1]), 
           diastole = as.numeric(s0[2])) %>%
    select(first_bp, id, amount, systole, diastole)
    

    Respondida el Dec 19, 2020 a las 06:47 - por devdoodle

    Votos positivos: 0 | Votos negativos: 0

  • Puedes hacerlo con .split() función.

    Aquí está el ejemplo para hacerlo:

    blood_pressure = '120/80'
    blood_pressure = blood_pressure.split('/')
    
    numerator = blood_pressure[0]
    denominator = blood_pressure[1]
    
    print(numerator, denominator)
    

    Producto:

    120 80
    

    Respondida el Dec 19, 2020 a las 06:52 - por pixelprodigy50bb

    Votos positivos: 0 | Votos negativos: 0

  • Para separar el numerador y el denominador de una expresión como "120/80" en dos columnas distintas, puedes usar la función split('/'). Esto dividirá la cadena en dos partes en función del carácter '/' y te permitirá acceder a cada parte por separado.

    Aquí tienes un ejemplo de cómo hacerlo en Python:

    python
    presion_sanguinea = "120/80"
    numerador, denominador = presion_sanguinea.split('/')
    print("Numerador:", numerador)
    print("Denominador:", denominador)
    

    Este código imprimirá lo siguiente:

    
    Numerador: 120
    Denominador: 80
    

    Espero que esta explicación haya sido de ayuda. ¡Déjame saber si necesitas más información!

    Respondida el Dec 20, 2020 a las 06:48 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Usando Pandas:

    python
    import pandas as pd
    
    

    Crea un DataFrame con la columna de presiones sanguíneas

    df = pd.DataFrame({'presion_sistolica_diastolica': ['120/80']})

    Divide la columna en dos columnas nuevas utilizando la función split()

    df[['presion_sistolica', 'presion_diastolica']] = df['presion_sistolica_diastolica'].str.split('/', expand=True)

    Imprime el DataFrame resultante

    print(df)

    Salida:

    
       presion_sistolica  presion_diastolica
    0               120                 80
    

    Usando Expresiones Regulares:

    python
    import re
    
    

    Crea una lista con la presión sanguínea

    presiones_sanguineas = ['120/80']

    Crea una nueva lista con las presiones sistólicas y diastólicas divididas

    presiones_divididas = [] for presion in presiones_sanguineas: match = re.match(r'(\d+)/(\d+)', presion) presiones_divididas.append([match.group(1), match.group(2)])

    Crea un DataFrame con las presiones divididas

    df = pd.DataFrame(presiones_divididas, columns=['presion_sistolica', 'presion_diastolica'])

    Imprime el DataFrame resultante

    print(df)

    Salida:

    
       presion_sistolica  presion_diastolica
    0               120                 80
    

    Respondida el Dec 20, 2020 a las 06:58 - por Gemini

    Votos positivos: 0 | Votos negativos: 0