2012-10-16 12 views
6

द्वारा पांडस डेटाफ्रेम टुकड़ा करना मेरे पास 'वाई वाई वाई-एमएम-डीडी एचएच: एमएम: एसएस' जैसे डाटाटाइम इंडेक्स के साथ पांडस डेटाफ्रेम है।दिन/घंटा/मिनट

Index    Parameter 
2007-05-02 14:14:08  134.8 
2007-05-02 14:14:32  134.8 
2007-05-02 14:14:41  134.8 
2007-05-02 14:14:53  134.8 
2007-05-02 14:15:01  134.8 
2007-05-02 14:15:09  134.8 
...... 
2007-05-30 23:08:02  105.9 
2007-05-30 23:18:02  105.9 
2007-05-30 23:28:02  105.9 
2007-05-30 23:38:03  105.8 

यह वर्ष df['2007'] या माह के df['2007-05'] द्वारा एक DataFrame काट पाने के लिए संभव है?

लेकिन जब मैं दिन-ब-DataFrame काट करने के लिए, उदाहरण के df['2007-05-02'] के लिए कोशिश की है, मैं त्रुटि मिल गया है:

KeyError: < Timestamp: 2007-02-05 00:00:00. 

मैं पांडा संस्करण 8.0.1 का उपयोग करें। क्या डेटाफ्रेम को वर्ष या महीने की तुलना में छोटी आवृत्ति के साथ टुकड़ा करना संभव है? उदाहरण के लिए, दिन या घंटे के द्वारा?

+1

दिलचस्प, वर्ष या साल के महीने से अनुक्रमण साल महीने की दिन-ब-से अलग व्यवहार है। साल के महीने के लिए, एच: एम: एस = 0: 0: 0 के साथ केवल टाइमस्टैम्प माना जाता है। बीटीडब्ल्यू मुझे लगता है कि आप एक श्रृंखला पर काम कर रहे हैं, न कि डेटाफ्रेम। –

उत्तर

11

df.ix[x:y] का उपयोग करें जहां x और y डेटाटाइम ऑब्जेक्ट्स हैं।

उदाहरण:

In [117]: frame.index.summary() 
Out[117]: 'DatetimeIndex: 6312960 entries, 2000-04-05 00:01:00 to 2012-04-06 00:00:00\nFreq: T' 


In [118]: x=datetime(2001, 4, 5, 0, 1) 

In [119]: y=datetime(2001, 4, 5, 0, 5) 

In [120]: print frame.ix[x:y] 
        radiation  tamb 
2001-04-05 00:01:00 67.958873 8.077386 
2001-04-05 00:02:00 50.801294 0.731453 
2001-04-05 00:03:00 16.042035 6.944998 
2001-04-05 00:04:00 5.678343 9.728967 
2001-04-05 00:05:00 72.551601 7.652942 

आप भी ऐसा कर सकते हैं:

In [121]: print frame.ix[x] 
radiation 67.958873 
tamb   8.077386 
Name: 2001-04-05 00:01:00 
+0

हां, लेकिन क्या यह एक सटीक सूचकांक बिंदु "मारने" के बिना किया जा सकता है? जैसे यदि श्रृंखला 2007-05-02 14:14:08 के साथ शुरू होती है, तो 'x = pd.Timestamp (' 2007-05-02 14:00:00 ') के साथ अनुक्रमणित होता है, फिर भी' KeyError 'उठाता है। – metakermit

+2

आह, ठीक है, इसे 's.between_time (x, y)' के साथ करने में कामयाब रहा। – metakermit

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

  • कोई संबंधित समस्या नहीं^_^