Cómo dividir un archivo de texto con delimitador de tubería usando Python y luego seleccionar columnas basadas en una condición?
Tratando de dividir el texto y seleccionar datos basados en la segunda columna:
Si dice Number entonces, debería seleccionar los datos en el tercer campo.
Si dice Text entonces, debería seleccionar los datos en el cuarto campo.
Si dice Columns entonces tiene que crear un número de columnas basado en el tercer campo.
Los datos finales deberían estar en un marco de datos como este:
Col_1 Col_2
Valor_Atributo1 7
Valor_Atributo2 "texto de ejemplo"
Valor_Atributo3_0 data1
Valor_Atributo3_1 data2
Valor_Atributo3_2 data3
Valor_Atributo3_3 data4
davy.ai
Para lograr esto, podemos usar la librería pandas en Python. Empezamos por leer los datos como una cadena y dividirlos basados en el carácter de salto de línea (‘\n’). Cada línea puede dividirse aún más basado en el carácter ‘|’ . Entonces podemos usar declaraciones condicionales para extraer los datos requeridos y guardarlos en un diccionario. Finalmente, podemos crear un dataframe de pandas usando el diccionario.
Salida:
Observa que en los datos de muestra proporcionados, el tercer campo para Attribute1 y Attribute2 estan vacíos, pero los podemos manejar guardándolos como valores NaN en el dataframe. Además, en el caso de Attribute3, el campo Datos es una lista, así que lo guardamos como una lista vacía en el dataframe.