मेरे पास निम्नानुसार एक डेटासेट "नोडअप" है (समय के अनुसार क्रमबद्ध नहीं)। यह कच्चे डेटा से एक सबसेट है, सॉर्ट नहीं किया गया। मुझे हर 15 मिनट में एक रिकॉर्ड प्राप्त करने की आवश्यकता है, उदाहरण के लिए 08:15, 08:30, 08:45... लेकिन यह केवल रिकॉर्ड रखता है जब अधिभोग = 1।
मुझे क्या करना है अधिभोग = 0 प्राप्त करना है, और ऑटो पिछले और अगले मूल्यों (उसी डिवाइस से) के माध्यम से संबंधित नव उत्पन्न सीओ 2 और आर्द्रता भरता है। :
device occupancy time co2 humidity
1 1 2019-06-27 10:17:22 818 40
2 1 2019-06-27 10:17:22 818 39
3 1 2019-06-27 08:00:05 625 40
4 1 2019-06-27 12:16:53 723 40
....
1 1 2019-06-28 10:17:22 818 40
2 1 2019-06-28 10:17:22 818 39
3 1 2019-06-28 08:02:05 625 40
4 1 2019-06-28 12:16:53 723 40
....
मैं जो चाहता हूं वह उदाहरण के रूप में है (पिछले डेटा के आधार पर 15 मिनट के रिकॉर्ड उत्पन्न करें, समय के अनुसार क्रमबद्ध करें):
device occupancy time co2 humidity
1 1 2019-06-27 08:15 818 40
2 0 2019-06-27 08:15 XXX XX
3 0 2019-06-27 08:15 XXX XX
4 1 2019-06-27 08:15 723 40
....
1 1 2019-06-27 08:30 830 45
2 0 2019-06-27 08:30 XXX XX
मैंने कोशिश की
time_first =nodup['time'].min()
time_last = nodup['time'].max()
mux = pd.MultiIndex.from_product([pd.date_range(time_first, time_last,freq='15min'),
nodup['device'].unique()], names=['time', 'device'])
result = nodup.set_index(['time','device']).reindex(mux, fill_value=0).reset_index()
लेकिन यह चलता है:
ValueError: cannot handle a non-unique multi-index!
कोई इस पर मदद कर सकता है? जैसा कि मैं कच्चे डेटा की समीक्षा करता हूं, लाइन में कोई डुप्लीकेट नहीं है
2 जवाब
मैं नहीं जानता कि आप क्या पूछ रहे हैं, लेकिन मैं शीर्षक के आधार पर उत्तर देने जा रहा हूं
(मुझे समझ में नहीं आता कि उदाहरण के लिए 10:17 क्यों 8:15 हो जाएगा)
nodup = pandas.DataFrame({
'time': pandas.date_range('2019-01-03 22:12:13','2019-05-08 11:11:27',periods=1000)
})
हर समय बनाने के लिए मिनटों के लिए ":00" है
new_times = nodup['time'].dt.floor("1h")
आप डिवाइस को एक इंडेक्स के रूप में उपयोग नहीं कर सकते क्योंकि यह एक अद्वितीय इंडेक्स नहीं है!
अनुक्रमणिका एक अद्वितीय संख्या होनी चाहिए जिसे कॉलम में दोहराया नहीं जा सकता।
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।