Función Pandas pd.Timestamp()

Pandas 通用函数Funciones comunes de Pandas


pd.Timestamp()Es la función de la biblioteca Pandas que se utiliza paracrear marcas de tiempoLa función puede aceptar entradas de fecha y hora en varios formatos y devolver un objeto Timestamp preciso.

Timestamp es un tipo de datos en Pandas para representar un único punto en el tiempo. Es una versión mejorada de datetime.datetime de la biblioteca estándar de Python, que ofrece más funciones y mejor rendimiento.

Significado de la palabra: TimestampSignifica 'marca de tiempo', es decir, representa un momento específico.


Sintaxis básica y parámetros

pd.Timestamp()Es la función de nivel superior de la biblioteca Pandas, utilizada para crear objetos Timestamp precisos.

Formato de sintaxis

pd.Timestamp(year=None, month=None, day=None, hour=None, minute=None, second=None, microsecond=None, nanosecond=None, tzinfo=None, freq=None)
pd.Timestamp(value)

Descripción de parámetros

Parámetro Tipo ¿Obligatorio? Descripción Valor predeterminado
value Cadena, datetime, int, float Opcional El valor de tiempo a convertir. None
year Entero Opcional Año (4 dígitos). None
month Entero Opcional Mes (1-12). None
day Entero Opcional Día (1-31). None
hour Entero Opcional Hora (0-23). None
minute Entero Opcional Minuto (0-59). None
second Entero Opcional Segundo (0-59). None
microsecond Entero Opcional Microsegundo (0-999999). None
nanosecond Entero Opcional Nanosegundo (0-999999). None
tz Cadena o tzinfo Opcional Información de la zona horaria, como 'UTC', 'Asia/Shanghai'. None

Descripción del valor de retorno

  • Valor de retorno: Devuelve un objeto Timestamp, similar a datetime.datetime.
  • Efecto: Convierte datos de tiempo de varios formatos en marcas de tiempo precisas de Pandas.

Ejemplos

Vamos a dominar completamente, mediante una serie de ejemplos de simples a complejos,pd.Timestamp()su uso.

Ejemplo 1: Uso básico - Crear una marca de tiempo

Ejemplo

import pandas as pd

# 1. Crear timestamp usando cadenas
print(=== Crear timestamp a partir de una cadena ===)
ts1 = pd.Timestamp('2023-01-01')
print(f"pd.Timestamp('2023-01-01'): {ts1}")

ts2 = pd.Timestamp('2023-01-01 12:30:45')
print(f"pd.Timestamp('2023-01-01 12:30:45'): {ts2}")

ts3 = pd.Timestamp('2023-05-15 08:00:00.123456')
print(f"Con microsegundos: {ts3}")

# 2. Crear un timestamp usando argumentos de palabra clave
print(n=== Creación con argumentos de palabra clave ===)
ts4 = pd.Timestamp(year=2023, month=6, day=15, hour=10, minute=30)
print(f"pd.Timestamp(year=2023, month=6, day=15, hour=10, minute=30): {ts4}")

# 3. Crear a partir de un objeto datetime
print("n=== Creación del objeto datetime ===")
import datetime
dt = datetime.datetime(2023, 8, 20, 14, 45, 30)
ts5 = pd.Timestamp(dt)
print(f"Creado desde datetime: {ts5}")

# 4. Ver las propiedades de la marca de tiempo
print(n=== Atributos de timestamp ===)
ts = pd.Timestamp('2023-03-15 10:30:45.123456')
print(f"Marca de tiempo: {ts}")
print(fAño: {ts.year})
print(fMes: {ts.month})
print(fFecha: {ts.day})
print(fHora: {ts.hour})
print(fMinutos: {ts.minute})
print(fSegundos: {ts.second})
print(f"Microsegundos: {ts.microsecond}")
print(f"Día de la semana (0=lunes): {ts.dayofweek}")
print(fTrimestre: {ts.quarter})

Resultado de la ejecución:

=== 字符串创建时间戳 ===
pd.Timestamp('2023-01-01'): 2023-01-01 00:00:00
pd.Timestamp('2023-01-01 12:30:45'): 2023-01-01 12:30:45
带微秒: 2023-05-15 08:00:00.123456

=== 关键字参数创建 ===
pd.Timestamp(year=2023, month=6, day=15, hour=10, minute=30): 2023-06-15 10:30:00

=== datetime 对象创建 ===
从 datetime 创建: 2023-08-20 14:45:30

=== 时间戳属性 ===
时间戳: 2023-03-15 10:30:45.123456
年份: 2023
月份: 3
日期: 15
小时: 10
分钟: 30
秒: 45
微秒: 123456
星期几 (0=周一): 2
季度: 1

Análisis del código:

  1. pd.Timestamp()Puede aceptar entradas en varios formatos, incluyendo cadenas, objetos datetime, etc.
  2. La marca de tiempo ofrece numerosos atributos para obtener las distintas partes de la fecha y hora.
  3. dayofweekDevuelve 0-6, donde 0 representa el lunes.

Ejemplo 2: Manejo de zonas horarias

Ejemplo

import pandas as pd

# 1. Crear un timestamp con zona horaria
print("=== Crear timestamp con zona horaria ===")
ts_utc = pd.Timestamp('2023-01-01 12:00:00', tz='UTC')
print(fZona horaria UTC: {ts_utc})

ts_shanghai = pd.Timestamp('2023-01-01 20:00:00', tz='Asia/Shanghai')
print(f"Zona horaria de Shanghái: {ts_shanghai}")

# 2. Conversión entre diferentes zonas horarias
print(n=== Conversión de zona horaria ===)
ts_utc = pd.Timestamp('2023-01-01 12:00:00', tz='UTC')
ts_local = ts_utc.tz_convert('Asia/Shanghai')
print(fHora UTC: {ts_utc})
print(f"Convertido a Shanghai: {ts_local}")

# 3. Crear una marca de tiempo de zona horaria local (de sin zona horaria a con zona horaria)
print(n=== Hora local a hora con zona horaria ===)
ts_naive = pd.Timestamp('2023-01-01 12:00:00')
print(fSin zona horaria: {ts_naive})
ts_aware = ts_naive.tz_localize('Asia/Shanghai')
print(f"Agregar la zona horaria de Shanghái: {ts_aware}")

# 4. Uso de la forma abreviada del parámetro tz
print(n=== Abreviaturas de zona horaria ===)
ts1 = pd.Timestamp('2023-01-01 12:00', tz='US/Eastern')
print(f"Hora del Este (EE. UU.): {ts1}")
ts2 = pd.Timestamp('2023-01-01 12:00', tz='Europe/London')
print(f"Londres: {ts2}")

Resultado de la ejecución:

=== 创建带时区的时间戳 ===
UTC 时区: 2023-01-01 12:00:00+00:00
上海时区: 2023-01-01 20:00:00+08:00

=== 时区转换 ===
UTC 时间: 2023-01-01 12:00:00+00:00
转换到上海: 2023-01-01 20:00:00+08:00

=== 本地时间转带时区 ===
无时区: 2023-01-01 12:00:00
添加上海时区: 2023-01-01 12:00:00+08:00

=== 时区简写 ===
美国东部: 2023-01-01 12:00:00-05:00
伦敦: 2023-01-01 12:00:00+00:00

Análisis del código:

  • tz_localizeSe utiliza para añadir información de zona horaria a un Timestamp sin zona horaria.
  • tz_convertSe utiliza para convertir entre diferentes zonas horarias.

Ejemplo 3: Comparación y operaciones con marcas de tiempo

Ejemplo

import pandas as pd

# 1. Comparación de marcas de tiempo
print(=== Comparación de marcas de tiempo ===)
ts1 = pd.Timestamp('2023-01-01')
ts2 = pd.Timestamp('2023-01-15')
ts3 = pd.Timestamp('2023-01-01')

print(f"ts1: {ts1}")
print(f"ts2: {ts2}")
print(f"ts1 < ts2: {ts1 < ts2}")
print(f"ts1 == ts3: {ts1 == ts3}")
print(f"ts1 != ts2: {ts1 != ts2}")

# 2. Operaciones de timestamp y Timedelta
print("n=== Operaciones con timestamp y diferencia de tiempo ===")
ts = pd.Timestamp('2023-01-01 12:00:00')
td = pd.Timedelta(days=5, hours=3)

print(f"Marca de tiempo original: {ts}")
print(f"Diferencia de tiempo: {td}")
print(f"ts + td: {ts + td}")
print(f"ts - td: {ts - td}")

# 3. Restar dos marcas de tiempo para obtener un Timedelta
print(n=== Resta de dos marcas de tiempo ===)
ts1 = pd.Timestamp('2023-01-15 18:00:00')
ts2 = pd.Timestamp('2023-01-10 09:00:00')

diff = ts1 - ts2
print(f"ts1: {ts1}")
print(f"ts2: {ts2}")
print(f"ts1 - ts2: {diff}")
print(fDías: {diff.days})
print(fHoras: {diff.seconds / 3600})

# 4. Usar marcas de tiempo en DataFrame
print(n=== Marca de tiempo en DataFrame ===)
df = pd.DataFrame({
    'event': ['event_a', 'event_b', 'event_c'],
    'timestamp': [
        pd.Timestamp('2023-01-01 10:00:00'),
        pd.Timestamp('2023-01-02 15:30:00'),
        pd.Timestamp('2023-01-03 09:45:00')
    ]
})
print(df)
print(f"nDuración del evento (relativa al primer evento):")
df['relative_days'] = (df['timestamp'] - df['timestamp'].iloc[0]).dt.days
print(df)

Resultado de la ejecución:

=== 时间戳比较 ===
ts1: 2023-01-01 00:00:00
ts2: 2023-01-15 00:00:00
ts1 < ts2: True
ts1 == ts3: True
ts1 != ts2: True

=== 时间戳与时间差运算 ===
原时间戳: 2023-01-01 12:00:00
时间差: 5 days 03:00:00
ts + td: 2023-01-06 15:00:00
ts - td: 2022-12-27 09:00:00

=== 两个时间戳相减 ===
ts1: 2023-01-15 18:00:00
ts2: 2023-01-10 09:00:00
ts1 - ts2: 5 days 09:00:00
天数: 5
小时: 9.0

=== DataFrame 中的时间戳 ===
        event           timestamp
0  event_a  2023-01-01 10:00:00
1  event_b  2023-01-02 15:30:00
2  event_c  2023-01-03 09:45:00

事件持续时间(相对于第一个事件):
        event           timestamp  relative_days
0  event_a  2023-01-01 10:00:00             0
1  event_b  2023-01-02 15:30:00             1
2  event_c  2023-01-03 09:45:00             2

Análisis del código:

  • Las marcas de tiempo admiten operaciones de comparación directa (<, >, ==, !=).
  • Sumar o restar un Timedelta a una marca de tiempo produce una nueva marca de tiempo o una diferencia de tiempo.
  • Restar dos marcas de tiempo produce un objeto Timedelta.
  • En un DataFrame se pueden realizar fácilmente cálculos relacionados con el tiempo.

Precauciones

Nota importante:

  • pd.TimestampSimilar a datetime de Python, pero ofrece un mayor rendimiento y más métodos.
  • Los objetos Timestamp son inmutables; las operaciones de modificación devuelven un nuevo objeto.
  • La información de la zona horaria es mejor especificarla al crear el objeto; modificarla más tarde puede generar ambigüedad.
  • Utilicepd.NaT(Not a Time) para representar valores de tiempo faltantes.

Pandas 通用函数Funciones comunes de Pandas

Otras extensiones