Python - Preparar archivo txt para DataFrame

 
Vista:
Imágen de perfil de Drowels
Val: 53
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Preparar archivo txt para DataFrame

Publicado por Drowels (21 intervenciones) el 15/03/2021 16:54:24
Hola,

Necesitaría un poco de ayuda si es posible.
Tengo unos archivos que se generan desde unos sensores y estos contienen unos valores. Los archivos son .txt.

Pego el contenido en un Pastebin https://pastebin.com/Q70vitG4

Estos txt tienen el sigutiente contenido:

Empieza con Fase: 1.5 (por ejemplo)
12345.12345 (numero de serie) (Esta línea la quiero eliminar)
27.681785583496094 - 0.001140594482422
27.139495849609375 - 0.178357124328613
29.039566040039062 - 0.98560905456543
31.15924835205078 - 0.62483024597168
29.278564453125 - 0.601988792419434
27.916831970214844 - 0.949727058410645
27.724197387695312 - 0.338293075561523
17.712379455566406 - 0.245744705200195
12.246261596679688 - 0.891246795654297 (Valores recogidos por los sensores)
Y ahora continúa el archivo con Fase 1.6 y lo mismo que lo anterior.

Mi idea es crear un DataFrame para pandas, donde cada fase sea una columna y que solo tenga los valores enviados por los sensores, no quiero la línea del número de serie y tampoco quiero el valor que va después del guion o símbolo de restar. Y solo querría las 3 primeras líneas de cada Fase.

Para el index utilizaría un reset_index() de 0 hasta la última línea, que podrían ser 1023.

Quedando algo así:

Fase: 1.5
27.8
27.13
29.03
Fase: 1.6
28.2
23.4
22.0
Fase: etc...

No se si es posible hacer algo así automáticamente con código Python o si es demasiado complicado.

Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Preparar archivo txt para DataFrame

Publicado por joel (901 intervenciones) el 15/03/2021 18:13:15
Hola Drowels, antes de crear el dataframe, he tenido que limpiar el archivo de texto, ya que no desconozco la manera de añadir ese archivo a pandas... siempre me da algún error...

Lo que he hecho, ha sido leer el archivo, eliminar las lineas que no necesito, y quedarme unicamente con los valores para crear el dataframe.
Espero que te sirva.

1
2
3
4
5
6
7
8
9
10
11
import pandas as pd
import io
 
data=""
with open("convertir.txt", "r") as f:
    for line in f.readlines():
        sep=line.find(" - ")
        data+=line[:sep]+"\n" if sep!=-1 else ""
 
df=pd.read_csv(io.StringIO(data))
print(df)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Drowels
Val: 53
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Preparar archivo txt para DataFrame

Publicado por Drowels (21 intervenciones) el 16/03/2021 15:20:39
Muchas gracias por la respuestas, la verdad que es lo que estaba buscando.
Creo que es la mejor manera de limpiar el archivo.

Ahora voy a ver si consigue separar por Fases. Que cada Fase sea una columna y sacar 3 líneas por columna.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar