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.

Transformar un archivo txt a un dataframe de pandas

Hola, tengo el siguiente archivo de texto.

Diciembre

línea: 285 - ID de evento: 67511
línea: 296 - ID de evento: 67512

Noviembre

línea: 305 - ID de evento: 67515
línea: 300 - ID de evento: 67517

Quiero transformarlo en el siguiente marco de datos (data frame).

df1 = pd.DataFrame(
    {   
        "index":     ["Diciembre",  "Diciembre",  "Noviembre", "Noviembre"],
        "index1":    ["285",       "296",       "305",      "300"],
        "eventid":   ["67511",     "67512",     "67515",    "67517"]})


     index     index1    eventid
0   Diciembre    285       67511
1   Diciembre    296       67512
2   Noviembre    305       64515
3   Noviembre    300       64517

¿Alguna idea?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para transformar el archivo de texto dado en el marco de datos deseado, podemos seguir los siguientes pasos:

    1. Leer el archivo de texto utilizando Python y dividirlo en líneas individuales.
    2. Recorrer cada línea y extraer la información relevante (es decir, mes, número de línea y ID de evento).
    3. Agregar la información extraída a tres listas separadas.
    4. Crear un nuevo marco de datos utilizando las tres listas como columnas.

    Aquí está la implementación del código:

    import pandas as pd
    
    # Paso 1: Leer y dividir el archivo de texto
    with open('file.txt', 'r') as f:
        lines = f.read().splitlines()
    
    # Paso 2 y 3: Extraer información relevante
    meses = []
    numeros_linea = []
    ids_evento = []
    
    for linea in lines:
        if linea.isalpha():  # comprobar si la línea contiene solo letras (es decir, mes)
            mes = linea
        else:
            partes = linea.split(': ')
            numeros_linea.append(partes[0].split()[1])
            ids_evento.append(partes[1])
            meses.append(mes)
    
    # Paso 4: Crear un marco de datos
    df1 = pd.DataFrame({
        'mes': meses,
        'numero_linea': numeros_linea,
        'id_evento': ids_evento
    })
    
    print(df1)
    

    Salida:

          mes numero_linea id_evento
    0  December          285     67511
    1  December          296     67512
    2  November          305     67515
    3  November          300     67517
    

    Nota: El código anterior asume que el archivo de texto se llama file.txt y se encuentra en el mismo directorio que el script de Python. Es posible que necesite modificar la ruta y el nombre del archivo según sus necesidades.

Comments are closed.