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.

Separar texto y números en pandas Python.

¿Cómo puedo separar un texto de un número en Panda Python, si no están separados por un espacio (” “)? En mi marco de datos df tengo una columna con 0.3314QSF. Quiero dividirla en dos columnas que contengan respectivamente 0.3314 y QSF en dos columnas diferentes dentro de mi marco de datos. El marco de datos consta de miles de filas, esta regla debería funcionar para todas las filas. Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una forma de separar un texto de un número en una columna de Pandas DataFrame es utilizando expresiones regulares (regex) con la función str.extract() integrada en Pandas. Aquí hay un ejemplo de cómo hacerlo:

    import pandas as pd
    
    # crear example data frame
    df = pd.DataFrame({'columna': ['0.3314QSF', '1.2345RTE', '2.3456MNB']})
    
    # extraer número y texto utilizando regex y la función str.extract()
    df['número'] = df['columna'].str.extract('(\d+.\d+)')
    df['texto'] = df['columna'].str.extract('([A-Z]+)')
    
    # mostrar el resultado del data frame
    print(df)
    

    Esto producirá el siguiente data frame:

        columna     número     texto
    0  0.3314QSF    0.3314       QSF
    1  1.2345RTE    1.2345       RTE
    2  2.3456MNB    2.3456       MNB
    

    En este ejemplo, creamos una nueva columna ‘número’ y ‘texto’. Primero, utilizamos expresiones regulares (\d+.\d+) para extraer el número, que coincide con cualquier dígito antes y después del punto decimal. Luego, utilizamos ([A-Z]+) para extraer el texto, que coincide con una o varias letras mayúsculas.

    Tenga en cuenta que en la expresión regular, rodeamos el patrón a extraer con paréntesis. Esto permitirá que str.extract devuelva solo esa parte de la cadena, en lugar de la cadena completa.

    Asignamos estos valores extraídos a las nuevas columnas ‘número’ y ‘texto’, respectivamente. El data frame resultante tiene la columna original y las dos nuevas columnas extraídas.

    Este método debería funcionar para todas las filas del data frame, siempre y cuando el patrón sea consistente en todas las filas. Si el patrón varía demasiado, se puede requerir un patrón regex diferente.

Comments are closed.