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.

Cómo leer la columna de tiempo en pandas y cómo convertirla a milisegundos.

Utilicé este código para leer un archivo de Excel
df=pd.read_excel(“XYZ.xlsb”,engine=’pyxlsb’,dtype={‘Tiempo’:str})

Esto es solo para mostrar lo que obtengo después de leer el archivo de Excel.

import pandas as pd
import numpy as np
data = {‘Nombre’:[‘T1′,’T2′,’T3’],
‘Columna de Tiempo en Excel’:[’01:57:15′, ’00:30:00′, ’05:00:00′],
‘Columna de Tiempo en Python’:[‘0.0814236111111111’, ‘0.0208333333333333’, ‘0.208333333333333’]}

df = pd.DataFrame(data)
print(df)

| Nombre | Columna de Tiempo en Excel | Columna de Tiempo en Python |
| T1 | 01:57:15 | 0.0814236111111111 |
| T2 | 00:30:00 | 0.0208333333333333 |
| T3 | 05:00:00 | 0.208333333333333 |

Quiero leer este tiempo exactamente como en Excel y convertirlo en milisegundos, ya que quiero usar el tiempo para calcular la diferencia de tiempo en porcentaje para trabajar posteriormente.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para leer la columna de tiempo exactamente como en Excel, puedes utilizar el parámetro dtype y configurarlo como una cadena (‘str’) como se muestra en el código utilizado para leer el archivo de Excel:

    df = pd.read_excel("XYZ.xlsb", engine='pyxlsb', dtype={'Time': str})
    

    Para convertir la columna de tiempo en milisegundos, puedes utilizar la función .apply() y la función datetime.strptime() para convertir la cadena de tiempo en un objeto datetime. Una vez que tengas un objeto datetime para cada valor de tiempo, puedes utilizar la función .total_seconds() para convertirlo a segundos y luego multiplicar por 1000 para obtener el tiempo en milisegundos. Aquí tienes un ejemplo de código:

    from datetime import datetime, timedelta
    
    # Suponiendo que la columna de tiempo se llama 'Time'
    df['Tiempo en ms'] = df['columna de tiempo en excel'].apply(lambda x: int((datetime.strptime(x, '%H:%M:%S') - datetime(1900, 1, 1)).total_seconds() * 1000))
    
    # Esto creará una nueva columna llamada 'Tiempo en ms' en el dataframe con los valores de tiempo convertidos a milisegundos
    

    Luego puedes utilizar la nueva columna ‘Tiempo en ms’ para calcular las diferencias de tiempo según sea necesario.

Comments are closed.