Fonction Pandas pd.Timestamp()
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
# 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 :
pd.Timestamp()Il peut accepter des entrées dans plusieurs formats, notamment des chaînes de caractères, des objets datetime, etc.- Timestamp fournit de riches attributs pour accéder aux différentes parties de la date et de l'heure.
dayofweekRenvoie 0-6, où 0 représente lundi.
Exemple 2 : Gestion des fuseaux horaires
Exemple
# 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
# 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 NaT
pd.NaT(Not a Time) pour représenter les valeurs temporelles manquantes.
Autres extensions