2015-10-01 12 views
17

Kafam karışık ofset eklenmesi: Burada all_treatments.iloc[i,micolix]pandalar sınırların dışında nanosaniye zaman damgası sonra rollforward ofset artı bir ay pandalar bu hatları ile datetime nesneler için sınırların dışında patladı nasıl

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)) 

pd.to_datetime(all_treatments['INDATUMA'], errors='coerce',format='%Y%m%d') tarafından belirlenen bir tarih saat ve INDATUMA, 20070125 biçimindeki tarih bilgisidir. pandalar yana

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

http://pandas-docs.github.io/pandas-docs-travis/timeseries.html#timestamp-limitations (http://stackoverflow.com/help/mcve) bu bir randevu indeksi olması mümkün olmadığını – jfs

cevap

18

temsil:

Bu mantık aşağıdaki hata ile benim bütün verilerde başarısız ederken yeniden olamaz an çok, (hiçbir hata, tarihler mantıklı) sahte verilerle çalışmak gibi görünüyor nanosaniye çözünürlükte zaman damgaları, 64-bit tamsayı kullanılarak temsil edilebilir zaman aralığı yaklaşık 584 yıldır

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') 

sınırlıdır ve değeri bu aralık dışında 2262/05/01 00:00:00 ve dolayısıyla outofbounds hatası

Düz dışarı

:

+2

biliyor musunuz o ötesine geçer [minimal ama * komple * kod örneği oluşturmak] bu aralıkta? – mac13k

+0

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

+0

Bunu biliyordum, teşekkürler. Sorun şu ki, zaman damgası sınırlarının ötesine geçen periyot aralığından oluşan indekse sahip olabilirsiniz ve gerçekten bu endeksden bireysel değerleri kullanmaya çalışana kadar sorun yoktur - hata veya yanlış tarihler alırsınız. – mac13k

İlgili konular