2015-10-01 13 views
17

Jestem zdezorientowany jak pandy zdmuchnął boiskiem dla obiektów datetime z tych linii:pandy poza granicami nanosekundy datownik po korekcji odtwarzanie zmian oraz dodanie miesięcy przesunięcie

import pandas as pd 
BOMoffset = pd.tseries.offsets.MonthBegin() 
# here some code sets the all_treatments dataframe and the newrowix, micolix, mocolix counters 
all_treatments.iloc[newrowix,micolix] = BOMoffset.rollforward(all_treatments.iloc[i,micolix] + pd.tseries.offsets.DateOffset(months = x)) 
all_treatments.iloc[newrowix,mocolix] = BOMoffset.rollforward(all_treatments.iloc[newrowix,micolix]+ pd.tseries.offsets.DateOffset(months = 1)) 

Tutaj all_treatments.iloc[i,micolix] jest datetime ustawiony przez pd.to_datetime(all_treatments['INDATUMA'], errors='coerce',format='%Y%m%d') i INDATUMA to data informacji w formacie 20070125.

Ta logika wydaje się działać na danych mock (żadnych błędów, daty sensu), więc w tej chwili nie mogę odtworzyć podczas gdy nie jest on w moich całych danych z powodu następującego błędu:

pandas.tslib.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 2262-05-01 00:00:00 
+1

[utworzyć minimalny, ale kompletne * * Przykład code] (http://stackoverflow.com/help/mcve) – jfs

Odpowiedz

18

Od pand reprezentuje znaczniki czasu w rozdzielczości nanosekundy, przedziale czasu, który może być przedstawiony za pomocą 64-bitową liczbę całkowitą jest ograniczona do około 584 lat

pd.Timestamp.min 
Out[54]: Timestamp('1677-09-22 00:12:43.145225') 

In [55]: pd.Timestamp.max 
Out[55]: Timestamp('2262-04-11 23:47:16.854775807') 

a twoja wartość jest poza tym zakresem 01/05/2262 00:00:00 a co za tym idzie błąd outofbounds

Prosto z: http://pandas-docs.github.io/pandas-docs-travis/timeseries.html#timestamp-limitations

+2

Czy wiesz, jeśli jest to możliwe, aby wskaźnik daty, która wykracza poza ten zasięg? – mac13k

+0

@ mac13k zobacz [to] (http://pandas-docs.github.io/pandas-docs-travis/timeseries.html#timeseries-oob) ... – blacksite

+0

Wiedziałem o tym, dzięki. Problem polega na tym, że indeks może pochodzić z przedziału czasowego wykraczającego poza ograniczenia znacznika czasu i jest w porządku, dopóki nie spróbujesz użyć poszczególnych wartości z tego indeksu - wtedy otrzymasz błędy lub niepoprawne daty. – mac13k

Powiązane problemy