2016-07-31 17 views
5

chcę zakres pandy okres 25 godzin offset, i widziałem, istnieją dwa sposoby, aby to zrobić (patrz here):Pandy `period_range` daje dziwne wyniki

Pierwszym sposobem jest użycie freq=25H, co ja próbował, i dał mi właściwą odpowiedź:

import pandas as pd 
pd.period_range(start='2016-01-01 10:00', freq = '25H', periods = 10) 

a wynik jest

PeriodIndex(['2016-01-01 10:00', '2016-01-02 11:00', '2016-01-03 12:00', 
      '2016-01-04 13:00', '2016-01-05 14:00', '2016-01-06 15:00', 
      '2016-01-07 16:00', '2016-01-08 17:00', '2016-01-09 18:00', 
      '2016-01-10 19:00'], 
      dtype='int64', freq='25H') 

drugi sposób, z użyciem freq=1D1H jednak dał mi szczura jej dziwny wynik:

pd.period_range(start='2016-01-01 10:00', freq = '1D1H', periods = 10) 

i mam

PeriodIndex(['1971-12-02 01:00', '1971-12-02 02:00', '1971-12-02 03:00', 
       '1971-12-02 04:00', '1971-12-02 05:00', '1971-12-02 06:00', 
       '1971-12-02 07:00', '1971-12-02 08:00', '1971-12-02 09:00', 
       '1971-12-02 10:00'], 
      dtype='int64', freq='25H') 

Więc może 1D1H nie jest prawidłowy sposób, aby określić częstotliwość? jak pojawił się 1971? (Próbowałem też używać jako wykorzystanie 1D1H częstotliwości dla metody date_range(), który pozwolił uzyskać właściwą odpowiedź.)

pd.date_range('2016-01-01 10:00', freq = '1D1H', periods = 10) 
DatetimeIndex(['2016-01-01 10:00:00', '2016-01-02 11:00:00', 
       '2016-01-03 12:00:00', '2016-01-04 13:00:00', 
       '2016-01-05 14:00:00', '2016-01-06 15:00:00', 
       '2016-01-07 16:00:00', '2016-01-08 17:00:00', 
       '2016-01-09 18:00:00', '2016-01-10 19:00:00'], 
       dtype='datetime64[ns]', freq='25H') 

EDIT: wydaje się, że z period_range(), choć freq=1D1H nie działa, freq=1H1D robi. Powód jest wciąż nieznany.

EDIT2: został zidentyfikowany jako błąd, zobacz odpowiedź poniżej.

+2

Wydaje się, że dane wyjściowe wydają się błędne dla danych wejściowych, ale gdzie widzisz, że dane wejściowe są legalne? Nigdy nie widziałem takiej dwufazowej specyfikacji częstotliwości. –

+0

Jest to z samouczka serii pandy z scipy 2016, notebook jest [tutaj] (https://github.com/AileenNielsen/TimeSeriesAnalysisWithPython/blob/master/1.%20Dates%20%26%20Times.ipynb). Jeśli szukasz '1d1h', możesz znaleźć dokładną lokalizację. –

+0

OK, dodano go do pytania. Ogólnie rzecz biorąc, możesz chcieć połączyć się ze źródłami, na których opierasz pytanie. –

Odpowiedz

5

Błąd został już zidentyfikowany i reported on GitHub.

EDYCJA: A fix została scalona i zostanie dołączona do wersji 0.9.

Powiązane problemy