La marca de tiempo de Pandas es equivalente a DateTime en Python. La marca de tiempo se utiliza para estructuras de datos orientadas a series temporales en pandas. A veces, la fecha y la hora se proporcionan como una marca de tiempo en pandas o es beneficioso convertirlas en una marca de tiempo. Y es necesario comparar las marcas de tiempo para conocer la última entrada, las entradas entre dos marcas de tiempo, la entrada más antigua, etc. para varias tareas. La comparación entre los objetos de marca de tiempo de pandas se lleva a cabo utilizando operadores de comparación simples: >, <,==,< = , >=. La diferencia se puede calcular usando un simple operador ‘–’.
El tiempo dado se puede convertir a la marca de tiempo de pandas usando el método pandas.Timestamp() . Este método puede tomar entradas en varias formas, como una string similar a DateTime (por ejemplo, ‘2017-01-01T12’), la época de Unix en unidades de segundos (1513393355.5), etc. Los valores se pueden tomar para un año, mes, día, hora, minuto, segundo, etc. separados por comas o usando nombres de variables. Por ejemplo, si queremos escribir 2018/2/21 11:40:00, podemos proporcionar (2018,2,21,11,40) como parámetros para el método de marca de tiempo o podemos escribir (año = 2018, mes = 2, día=21,hora=11,minuto=40). Los valores no proporcionados serán considerados como cero. Este enfoque se usa en el siguiente código para crear la columna de marca de tiempo ‘new_time’ usando la información de fecha y hora proporcionada.
Acercarse:
- Crear un marco de datos con valores de fecha y hora
- Convierta los valores de fecha y hora en valores de marca de tiempo usando el método pandas.timestamp()
- Compare las marcas de tiempo requeridas utilizando operadores de comparación regulares.
Cree un marco de datos de pandas con fecha y hora:
Python3
import pandas as pd # Create a dataframe df = pd.DataFrame({ 'year': [2017, 2017, 2017, 2018, 2018], 'month': [11, 11, 12, 1, 2], 'day': [29, 30, 31, 1, 2], 'hour': [10, 10, 10, 11, 11], 'minute': [10, 20, 25, 30, 40]}) def time(rows): return (pd.Timestamp(rows.year, rows.month, rows.day, rows.hour, rows.minute)) # Create new column with entries of date # and time provided in timestamp format df['new_time'] = df.apply(time, axis = 'columns') display(df)
Producción:
El df anterior se usa en los siguientes ejemplos.
Ejemplo 1: aquí, la primera y la segunda marca de tiempo en ‘new_time’ se comparan para conocer la más antigua entre ellas.
Python3
# Compare first and second timestamps if df['new_time'][0] <= df['new_time'][1]: print("First entry is old") else: print("Second entry is old")
Producción:
First entry is old
Ejemplo 2: aquí, todas las marcas de tiempo en ‘new_time’ se comparan con la marca de tiempo (2018-01-05 12:00:00) y se devuelven las entradas anteriores a esta marca de tiempo
Python3
# Timestamps satisfying given condition for i in range(len(df['year'])): if df['new_time'][i] < pd.Timestamp(2018, 1, 5, 12): print(df['new_time'][i])
Producción:
2017-11-29 10:10:00 2017-11-30 10:20:00 2017-12-31 10:25:00 2018-01-01 11:30:00
Ejemplo 3: Aquí nuevamente comparamos todas las marcas de tiempo con Timestamp(2018-01-05 12:00:00), pero devolvimos el resultado de la comparación como valores booleanos (Verdadero/Falso) para todas las marcas de tiempo.
Python3
# Boolean value output for given condition print(df['new_time'] > pd.Timestamp(2018, 1, 5, 12))
Producción:
0 False 1 False 2 False 3 False 4 True Name: new_time, dtype: bool
Ejemplo 4: aquí, la función max se usa para obtener el máximo de todas las marcas de tiempo, es decir, la entrada reciente en la columna ‘new_time’.
Además, con eso, calculamos la diferencia de tiempo entre la primera y la segunda marca de tiempo en la columna ‘new_time’.
Python3
# Latest timestamp print("Latest Timestamp: ", max(df['new_time'])) # Get difference between 2 timestamps diff = abs(df['new_time'][0]-df['new_time'][1]) print("Difference: ", diff)
Producción:
Latest Timestamp: 2018-02-02 11:40:00 Difference: 1 days 00:10:00
Publicación traducida automáticamente
Artículo escrito por hemavatisabu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA