So beheben sie das problem in pandas: zeitstempel in nanosekunden außerhalb des zulässigen bereichs
Ein Fehler, der bei der Verwendung von Pandas auftreten kann, ist:
OutOfBoundsDatetime : Out of bounds nanosecond timestamp: 2300-01-10 00:00:00
Dieser Fehler tritt auf, wenn Sie versuchen, einen Zeitstempel außerhalb des folgenden Bereichs zu erstellen:
import pandas as pd #display minimum timestamp allowed print (pd. Timestamp . min ) 1677-09-21 00:12:43.145224193 #display maximum timestamp allowed print (pd. Timestamp . max ) 2262-04-11 23:47:16.854775807
Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.
So reproduzieren Sie den Fehler
Angenommen, wir versuchen, in Pandas einen Datumsbereich zu erstellen, der die folgenden drei Daten enthält:
- 1.1.2020
- 1.1.2150
- 1.1.2300
Wir können die Funktion date_range() verwenden, um zu versuchen, diesen Datumsbereich zu erstellen:
import pandas as pd #attempt to create date range some_dates = pd. date_range (start=' 1/1/2000 ', end=' 1/1/2300 ', periods= 3 ) OutOfBoundsDatetime : Out of bounds nanosecond timestamp: 2300-01-10 00:00:00
Wir erhalten den OutOfBoundsDatetime- Fehler, weil der Zeitstempel 1/1/2300 größer ist als der von Pandas maximal zulässige Zeitstempel in Nanosekunden.
Auch wenn Sie den Zeitstempel nicht in Nanosekunden als Einheit speichern möchten, erledigt Pandas dies automatisch.
So beheben Sie den Fehler
Der einfachste Weg, diesen Fehler zu umgehen, ist die Verwendung des Arguments error = ‚coerce‘ , das alle Zeitstempel außerhalb des minimalen oder maximalen Bereichs in NaT-Werte umwandelt.
Beispielsweise können wir den folgenden Code verwenden, um einen Datumsbereich zu erstellen und alle Zeitstempel außerhalb des zulässigen Bereichs automatisch auf NaT-Werte zu setzen:
import pandas as pd #create date range some_dates = ['1/1/2000', '1/1/2150', '1/1/2300'] #convert date range to datetime and automatically coerce errors some_dates = pd. to_datetime (some_dates, errors = ' coerce ') #showdatetimes print (some_dates) DatetimeIndex(['2000-01-01', '2150-01-01', 'NaT'], dtype='datetime64[ns]', freq=None)
Das Ergebnis ist ein Datumsbereich mit drei Datums-/Uhrzeitwerten und der letzte Datums-/Uhrzeitwert ist NaT, da er den von Pandas zulässigen Höchstwert überschritten hat.
Beachten Sie, dass wir dieses Mal beim Erstellen des Datumsbereichs keine Fehlermeldungen erhalten.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:
Lösung: Spalten überschneiden sich, es ist jedoch kein Suffix angegeben
Problembehebung: Das Objekt „numpy.ndarray“ verfügt nicht über das Attribut „append“.
Lösung: Wenn Sie alle Skalarwerte verwenden, müssen Sie einen Index übergeben