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.
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:Esto producirá el siguiente data frame:
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.