Fonction Pandas pd.Timestamp()

Pandas 通用函数Fonctions Pandas couramment utilisées


pd.Timestamp()est une fonction de la bibliothèque Pandas pourcréer des horodatages.Elle peut accepter une entrée date-heure dans plusieurs formats et renvoyer un objet Timestamp précis.

Timestamp est un type de données dans Pandas utilisé pour représenter un instant précis. Il s'agit d'une version améliorée de datetime.datetime de la bibliothèque standard de Python, offrant des fonctionnalités plus riches et de meilleures performances.

Définition du mot: TimestampSignifie « horodatage », c’est-à-dire représente un moment précis dans le temps.


Syntaxe de base et paramètres

pd.Timestamp()est une fonction de premier niveau de la bibliothèque Pandas, utilisée pour créer des objets d’horodatage précis.

Format de syntaxe

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)

Description du paramètre

Paramètre Type Requis Description Valeur par défaut
value String, datetime, int, float Optional La valeur de temps à convertir. Aucune
année Integer Optional Année (4 chiffres). Aucune
month Integer Optional Mois (1-12). Aucune
jour Integer Optional Jour (1-31). Aucune
hour Integer Optional Heure (0-23). Aucune
minute Integer Optional Minute (0-59). Aucune
second Integer Optional Seconde (0-59). Aucune
microseconde Integer Optional Microseconde (0-999999). Aucune
nanoseconde Integer Optional Nanoseconde (0-999999). Aucune
tz Chaîne ou tzinfo Optional Informations de fuseau horaire, par ex. 'UTC', 'Asia/Shanghai'. Aucune

Description de la valeur de retour

  • Valeur de retour: Renvoie un objet Timestamp, similaire à datetime.datetime.
  • Effet: Convertit les données temporelles de divers formats en horodatages Pandas précis.

Exemples

Maîtrisons à fond, à travers une série d'exemples du simple au complexe,pd.Timestamp()l'utilisation de pd.Timestamp().

Exemple 1 : Utilisation de base - Création d'horodatages

Exemple

import pandas as pd

# 1. Créer un horodatage à partir d'une chaîne
print("=== Créer un Timestamp à partir d'une chaîne ===")
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"Avec les microsecondes : {ts3}")

# 2. Créer un timestamp à l'aide d'arguments nommés
print("\n=== Création à l'aide d'arguments nommés ===")
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. Créer à partir d'un objet datetime
print("\n=== Créer à partir d'un objet datetime ===")
import datetime
dt = datetime.datetime(2023, 8, 20, 14, 45, 30)
ts5 = pd.Timestamp(dt)
print(f"Créé à partir de datetime : {ts5}")

# 4. Afficher les attributs du timestamp
print("\n=== Attributs du timestamp ===")
ts = pd.Timestamp('2023-03-15 10:30:45.123456')
print(f"Horodatage : {ts}")
print(f"Année : {ts.year}")
print(f"Mois : {ts.month}")
print(f"Jour : {ts.day}")
print(f"Heure : {ts.hour}")
print(f"Minute : {ts.minute}")
print(f"Seconde : {ts.second}")
print(f"Microseconde : {ts.microsecond}")
print(f"Jour de la semaine (0=lundi) : {ts.dayofweek}")
print(f"Trimestre : {ts.quarter}")

Sortie :

=== 字符串创建时间戳 ===
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

Analyse du code :

  1. pd.Timestamp()Il peut accepter des entrées dans plusieurs formats, notamment des chaînes de caractères, des objets datetime, etc.
  2. Timestamp fournit de riches attributs pour accéder aux différentes parties de la date et de l'heure.
  3. dayofweekRenvoie 0-6, où 0 représente lundi.

Exemple 2 : Gestion des fuseaux horaires

Exemple

import pandas as pd

# 1. Créer un timestamp avec un fuseau horaire
print("=== Créer un Timestamp avec fuseau horaire ===")
ts_utc = pd.Timestamp('2023-01-01 12:00:00', tz='UTC')
print(f"Fuseau horaire UTC : {ts_utc}")

ts_shanghai = pd.Timestamp('2023-01-01 20:00:00', tz='Asia/Shanghai')
print(f"Fuseau horaire de Shanghai : {ts_shanghai}")

# 2. Conversion entre différents fuseaux horaires
print("\n=== Conversion de fuseau horaire ===")
ts_utc = pd.Timestamp('2023-01-01 12:00:00', tz='UTC')
ts_local = ts_utc.tz_convert('Asia/Shanghai')
print(f"Heure UTC : {ts_utc}")
print(f"Converti en heure de Shanghai : {ts_local}")

# 3. Créer un horodatage avec fuseau horaire local (convertir de naïf à conscient)
print("\n=== Convertir l'heure locale en heure consciente du fuseau horaire ===")
ts_naive = pd.Timestamp('2023-01-01 12:00:00')
print(f"Naïf (sans fuseau horaire) : {ts_naive}")
ts_aware = ts_naive.tz_localize('Asia/Shanghai')
print(f"Fuseau horaire de Shanghai ajouté : {ts_aware}")

# 4. Utiliser les formes abrégées du paramètre tz
print("\n=== Abréviation de fuseau horaire ===")
ts1 = pd.Timestamp('2023-01-01 12:00', tz='US/Eastern')
print(f"Est des États-Unis: {ts1}")
ts2 = pd.Timestamp('2023-01-01 12:00', tz='Europe/London')
print(f"Londres: {ts2}")

Sortie :

=== 创建带时区的时间戳 ===
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

Analyse du code :

  • tz_localizeUtilisé pour ajouter des informations de fuseau horaire à un Timestamp naïf.
  • tz_convertUtilisé pour convertir entre différents fuseaux horaires.

Exemple 3 : Comparaison et opérations sur les Timestamp

Exemple

import pandas as pd

# 1. Comparaison de Timestamp
print("=== Comparaison de Timestamp ===")
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. Opérations entre Timestamp et Timedelta
print("\n=== Opérations entre Timestamp et Timedelta ===")
ts = pd.Timestamp('2023-01-01 12:00:00')
td = pd.Timedelta(days=5, hours=3)

print(f"Timestamp d'origine : {ts}")
print(f"Timedelta : {td}")
print(f"ts + td : {ts + td}")
print(f"ts - td : {ts - td}")

# 3. Soustraire deux timestamps pour obtenir un Timedelta
print("\n=== Soustraction de deux timestamps ===")
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(f"Jours : {diff.days}")
print(f"Heures : {diff.seconds / 3600}")

# 4. Utiliser les timestamps dans un DataFrame
print("\n=== Horodatages dans 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"\nDurée de l'événement (par rapport au premier événement) :")
df['relative_days'] = (df['timestamp'] - df['timestamp'].iloc[0]).dt.jours
print(df)

Sortie :

=== 时间戳比较 ===
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

Analyse du code :

  • Timestamp prend en charge les opérateurs de comparaison directs (>, <, ==, !=).
  • Ajouter un Timedelta à un Timestamp ou en soustraire un d'un Timestamp produit un nouveau Timestamp ou Timedelta.
  • La soustraction de deux horodatages donne un objet Timedelta.
  • Les calculs liés au temps peuvent être facilement effectués dans un DataFrame.

Remarques importantes

Remarque importante :

  • pd.TimestampSimilaire à datetime de Python, mais offre de meilleures performances et davantage de méthodes.
  • Les objets Timestamp sont immuables ; les opérations de modification renvoient de nouveaux objets.
  • Les informations de fuseau horaire sont mieux spécifiées au moment de la création ; modifier le fuseau horaire ultérieurement peut causer une ambiguïté.
  • Utiliser NaTpd.NaT(Not a Time) pour représenter les valeurs temporelles manquantes.

Pandas 通用函数Fonctions Pandas couramment utilisées

Autres extensions