Pandas pd.Timestamp()-Funktion

Pandas 通用函数Häufig verwendete Pandas-Funktionen


pd.Timestamp()ist eine Funktion in der Pandas-Bibliothek zumErstellen von Zeitstempeln.Sie kann Datums- und Zeitangaben in mehreren Formaten akzeptieren und ein präzises Timestamp-Objekt zurückgeben.

Timestamp ist ein Datentyp in Pandas, der verwendet wird, um einen einzelnen Zeitpunkt darzustellen. Er ist eine erweiterte Version von Pythons Standardbibliothek datetime.datetime und bietet umfangreichere Funktionalität und bessere Leistung.

Wortdefinition: TimestampBedeutet "Zeitstempel", d. h. steht für einen bestimmten Zeitpunkt.


Grundlegende Syntax und Parameter

pd.Timestamp()ist eine Top-Level-Funktion der Pandas-Bibliothek, die zum Erstellen präziser Timestamp-Objekte verwendet wird.

Syntaxformat

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)

Parameterbeschreibung

Parameter Type Erforderlich Beschreibung Standardwert
value String, datetime, int, float Optional Der umzuwandelnde Zeitwert. Keine
Jahr Integer Optional Jahr (4 Ziffern). Keine
month Integer Optional Monat (1-12). Keine
day Integer Optional Tag (1-31). Keine
hour Integer Optional Stunde (0-23). Keine
minute Integer Optional Minute (0-59). Keine
second Integer Optional Sekunde (0-59). Keine
microsecond Integer Optional Mikrosekunde (0-999999). Keine
nanosecond Integer Optional Nanosekunde (0-999999). Keine
tz String oder tzinfo Optional Zeitzoneninformation, z. B. 'UTC', 'Asia/Shanghai'. Keine

Beschreibung des Rückgabewerts

  • Rückgabewert: Gibt ein Timestamp-Objekt zurück, ähnlich wie datetime.datetime.
  • Effekt: Konvertiert Zeitdaten in verschiedenen Formaten in präzise Pandas-Zeitstempel.

Beispiele

Lass uns durch eine Reihe von Beispielen von einfach bis komplex gründlich meistern,pd.Timestamp()die Verwendung von pd.Timestamp().

Beispiel 1: Grundlegende Verwendung - Erstellen von Zeitstempeln

Beispiel

import pandas as pd

# 1. Erstelle einen Zeitstempel mit einem String
print("=== Zeitstempel aus String erstellen ===")
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"Mit Mikrosekunden: {ts3}")

# 2. Zeitstempel mit Schlüsselwortargumenten erstellen
print("\n=== Erstellung mit Schlüsselwortargumenten ===")
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. Aus einem datetime-Objekt erstellen
print("\n=== Aus datetime-Objekt erstellen ===")
import datetime
dt = datetime.datetime(2023, 8, 20, 14, 45, 30)
ts5 = pd.Timestamp(dt)
print(f"Erstellt aus datetime: {ts5}")

# 4. Timestamp-Attribute anzeigen
print("\n=== Timestamp-Attribute ===")
ts = pd.Timestamp('2023-03-15 10:30:45.123456')
print(f"Zeitstempel: {ts}")
print(f"Jahr: {ts.year}")
print(f"Monat: {ts.month}")
print(f"Tag: {ts.day}")
print(f"Stunde: {ts.hour}")
print(f"Minute: {ts.minute}")
print(f"Sekunde: {ts.second}")
print(f"Mikrosekunde: {ts.microsecond}")
print(f"Wochentag (0=Montag): {ts.dayofweek}")
print(f"Quartal: {ts.quarter}")

Ausgabe:

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

Codeanalyse:

  1. pd.Timestamp()Es kann Eingaben in mehreren Formaten akzeptieren, darunter Zeichenfolgen, datetime-Objekte usw.
  2. Timestamp bietet umfangreiche Attribute, um auf verschiedene Teile des Datums und der Uhrzeit zuzugreifen.
  3. dayofweekGibt 0-6 zurück, wobei 0 für Montag steht.

Beispiel 2: Umgang mit Zeitzonen

Beispiel

import pandas as pd

# 1. Erstelle einen Zeitstempel mit einer Zeitzone
print("=== Timestamp mit Zeitzone erstellen ===")
ts_utc = pd.Timestamp('2023-01-01 12:00:00', tz='UTC')
print(f"UTC-Zeitzone: {ts_utc}")

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

# 2. Konvertierung zwischen verschiedenen Zeitzonen
print("\n=== Zeitzonen-Konvertierung ===")
ts_utc = pd.Timestamp('2023-01-01 12:00:00', tz='UTC')
ts_local = ts_utc.tz_convert('Asia/Shanghai')
print(f"UTC-Zeit: {ts_utc}")
print(f"Konvertiert nach Shanghai: {ts_local}")

# 3. Lokalen Zeitzonen-Zeitstempel erstellen (von naiv zu aware konvertieren)
print("\n=== Lokale Zeit in zeitzonenbewusste Zeit konvertieren ===")
ts_naive = pd.Timestamp('2023-01-01 12:00:00')
print(f"Naiv (keine Zeitzone): {ts_naive}")
ts_aware = ts_naive.tz_localize('Asia/Shanghai')
print(f"Shanghai-Zeitzone hinzugefügt: {ts_aware}")

# 4. Kurzformen des tz-Parameters verwenden
print("\n=== Zeitzonen-Kurzschreibweise ===")
ts1 = pd.Timestamp('2023-01-01 12:00', tz='US/Eastern')
print(f"US-Ostküste: {ts1}")
ts2 = pd.Timestamp('2023-01-01 12:00', tz='Europe/London')
print(f"London: {ts2}")

Ausgabe:

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

Codeanalyse:

  • tz_localizeWird verwendet, um einem naiven Timestamp Zeitzoneninformationen hinzuzufügen.
  • tz_convertWird verwendet, um zwischen verschiedenen Zeitzonen zu konvertieren.

Beispiel 3: Timestamp-Vergleich und -Operationen

Beispiel

import pandas as pd

# 1. Timestamp-Vergleich
print("=== Timestamp-Vergleich ===")
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. Operationen zwischen Timestamp und Timedelta
print("\n=== Timestamp- und Timedelta-Operationen ===")
ts = pd.Timestamp('2023-01-01 12:00:00')
td = pd.Timedelta(days=5, hours=3)

print(f"Originaler Zeitstempel: {ts}")
print(f"Timedelta: {td}")
print(f"ts + td: {ts + td}")
print(f"ts - td: {ts - td}")

# 3. Zwei Zeitstempel subtrahieren, um ein Timedelta zu erhalten
print("\n=== Zwei Zeitstempel subtrahieren ===")
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"Tage: {diff.days}")
print(f"Stunden: {diff.seconds / 3600}")

# 4. Zeitstempel in DataFrame verwenden
print("\n=== Zeitstempel in 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"\nEreignisdauer (relativ zum ersten Ereignis):")
df['relative_days'] = (df['timestamp'] df['timestamp'].iloc[0]).dt.Tage
print(df)

Ausgabe:

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

Codeanalyse:

  • Timestamp unterstützt direkte Vergleichsoperatoren (>, <, ==, !=).
  • Das Addieren oder Subtrahieren eines Timedelta zu/von einem Timestamp ergibt einen neuen Timestamp oder ein neues Timedelta.
  • Das Subtrahieren zweier Timestamps ergibt ein Timedelta-Objekt.
  • Zeitbezogene Berechnungen lassen sich bequem in einem DataFrame durchführen.

Wichtige Hinweise

Wichtiger Hinweis:

  • pd.TimestampÄhnlich wie Pythons datetime, bietet jedoch höhere Leistung und mehr Methoden.
  • Timestamp-Objekte sind unveränderlich; Änderungsoperationen geben neue Objekte zurück.
  • Zeitzoneninformationen werden am besten zum Zeitpunkt der Erstellung angegeben; eine spätere Änderung der Zeitzone kann zu Mehrdeutigkeiten führen.
  • NaT verwendenpd.NaT(Not a Time), um fehlende Zeitwerte darzustellen.

Pandas 通用函数Häufig verwendete Pandas-Funktionen

Andere Erweiterungen