Jak naprawić w pandach: znacznik czasu w nanosekundach poza zakresem
Błąd, który możesz napotkać podczas korzystania z pand, to:
OutOfBoundsDatetime : Out of bounds nanosecond timestamp: 2300-01-10 00:00:00
Ten błąd występuje, gdy próbujesz utworzyć znacznik czasu spoza następującego zakresu:
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
Poniższy przykład pokazuje, jak w praktyce skorygować ten błąd.
Jak odtworzyć błąd
Załóżmy, że próbujemy utworzyć w pandach zakres dat zawierający trzy następujące daty:
- 1.01.2020
- 1.01.2150
- 1/1/2300
Możemy użyć funkcji date_range() , aby spróbować utworzyć ten zakres dat:
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
Otrzymujemy błąd OutOfBoundsDatetime , ponieważ znacznik czasu 1/1/2300 jest większy niż maksymalny znacznik czasu w nanosekundach dozwolony przez pandy.
Nawet jeśli nie chcesz przechowywać znacznika czasu, używając nanosekund jako jednostki, pandy zrobią to automatycznie.
Jak naprawić błąd
Najłatwiejszym sposobem obejścia tego błędu jest użycie argumentu error = „coerce” , który wymusza na wartościach NaT wszystkie znaczniki czasu spoza minimalnego lub maksymalnego zakresu.
Na przykład możemy użyć poniższego kodu, aby utworzyć zakres dat i automatycznie wymusić na wszystkich znacznikach czasu spoza dozwolonego zakresu wartości NaT:
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)
Wynikiem jest zakres dat z trzema wartościami datetime, a ostatnia datetime to NaT, ponieważ przekroczyła maksymalną wartość dozwoloną przez pandy.
Pamiętaj, że tym razem podczas tworzenia zakresu dat nie otrzymaliśmy żadnych błędów.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:
Jak naprawić: Kolumny nakładają się, ale nie określono żadnego sufiksu
Jak naprawić: Obiekt „numpy.ndarray” nie ma atrybutu „dołącz”.
Jak naprawić: jeśli używasz wszystkich wartości skalarnych, musisz przekazać indeks