簡體   English   中英

Pandas date_range行為不一致

[英]Pandas date_range inconsistent behavior

當使用pandas(v.13.1)date_range函數時,我得到關於'end'是否在返回范圍內的不一致行為:

In [1]: pd.date_range(start='2014-06-09 15:36:55', 
                      end='2014-06-09 15:37:46', 
                      freq='20s')
Out[1]: [2014-06-09 15:36:55, ..., 2014-06-09 15:37:55]

In [2]: pd.date_range(start='2014-06-09 15:36:55', 
                      end='2014-06-09 15:37:46', 
                      freq='10s')
Out[2]: [2014-06-09 15:36:55, ..., 2014-06-09 15:37:45]

請注意,在第一種情況下,最后一次是指定的'end',而在第二種情況下,最后一次是較小的。 有誰能解釋一下?

我相信這個問題已在某些版本中得到解決。 現在, date_range行為是一致的,始終包括DatetimeIndex始終<= endstartend 輸出格式也變得相當。

以下代碼使用pandas 0.17.0:

In [1]: import pandas as pd

In [2]: pd.date_range(start='2014-06-09 15:36:55', 
   ...:                       end='2014-06-09 15:37:46', 
   ...:                       freq='20s')
Out[2]: 
DatetimeIndex(['2014-06-09 15:36:55', '2014-06-09 15:37:15',
               '2014-06-09 15:37:35'],
              dtype='datetime64[ns]', freq='20S')

In [3]: pd.date_range(start='2014-06-09 15:36:55', 
                      end='2014-06-09 15:37:46', 
                      freq='10s')
Out[3]: 
DatetimeIndex(['2014-06-09 15:36:55', '2014-06-09 15:37:05',
               '2014-06-09 15:37:15', '2014-06-09 15:37:25',
               '2014-06-09 15:37:35', '2014-06-09 15:37:45'],
              dtype='datetime64[ns]', freq='10S')

In [4]: pd.date_range(start='2014-06-09 15:36:55', 
                      end='2014-06-09 15:37:46', 
                      freq='15s')
Out[4]: 
DatetimeIndex(['2014-06-09 15:36:55', '2014-06-09 15:37:10',
               '2014-06-09 15:37:25', '2014-06-09 15:37:40'],
              dtype='datetime64[ns]', freq='15S')

In [5]: pd.date_range(start='2014-06-09 15:36:55', 
                      end='2014-06-09 15:37:46', 
                      freq='1s')
Out[5]: 
DatetimeIndex(['2014-06-09 15:36:55', '2014-06-09 15:36:56',
                   ......                    ......
               '2014-06-09 15:37:45', '2014-06-09 15:37:46'],
              dtype='datetime64[ns]', freq='S')

請注意, DatetimeIndex的結尾永遠不會超過date_range end日期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM