Pandas pd.Timestamp()-Funktion
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
# 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:
pd.Timestamp()Es kann Eingaben in mehreren Formaten akzeptieren, darunter Zeichenfolgen, datetime-Objekte usw.- Timestamp bietet umfangreiche Attribute, um auf verschiedene Teile des Datums und der Uhrzeit zuzugreifen.
dayofweekGibt 0-6 zurück, wobei 0 für Montag steht.
Beispiel 2: Umgang mit Zeitzonen
Beispiel
# 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
# 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 verwenden
pd.NaT(Not a Time), um fehlende Zeitwerte darzustellen.
Andere Erweiterungen