2014-06-25 7 views
5

पांडा का उपयोग करते समय (v 13.1।) DATE_RANGE समारोह मैं या नहीं, 'अंत' लौटे रेंज में अंदर है के बारे में असंगत व्यवहार मिलता है:पांडा असंगत व्यवहार DATE_RANGE

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] 

ध्यान दें कि पहले मामले में आखिरी बार बाद में निर्दिष्ट 'अंत' होता है, जबकि दूसरे मामले में आखिरी बार छोटा होता है। क्या कोई इसे समझा सकता है?

+1

मुझे लगता है कि यह निकटतम आवृत्ति सीमा के लिए घूम रहा है। 46 35 से 35 (20 सेकंड पहले) 55 के करीब है, लेकिन 45 से 55 के करीब है। हालांकि, मैं मानता हूं कि भ्रमित व्यवहार है। पांडा मेलिंग सूची और/या ट्रैकर में एक बग उठाने के बारे में पूछना उचित हो सकता है। – BrenBarn

+1

मेरा अनुमान है कि वर्तमान <अंत में अगली उपज होती है (इसलिए यह बहुत अधिक उत्पन्न करती है), लेकिन मैं नहीं देख सकता कि यह कहां से आएगा। निश्चित रूप से जिथब पर पोस्ट करें और जारी करें। –

उत्तर

1

मुझे विश्वास है कि यह समस्या कुछ रिलीज में पहले ही ठीक हो चुकी है। अब date_range व्यवहार लगातार start और DatetimeIndex के अंत में हमेशा < = end समेत संगत है। और आउटपुट प्रारूप भी सुंदर हो गया।

के बाद कोड पांडा उपयोग कर रहा है 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 तारीख से अधिक है।

संबंधित मुद्दे