सबसे पहले मैं पांडा के लिए नया हूं, लेकिन मैं पहले से ही इसमें प्यार कर रहा हूं। मैं ओरेकल से लैग फ़ंक्शन के समतुल्य को कार्यान्वित करने की कोशिश कर रहा हूं।ओरेकल लीड/लैग फ़ंक्शन के बराबर पांडस
की आप इस DataFrame है लगता है:
Date Group Data
2014-05-14 09:10:00 A 1
2014-05-14 09:20:00 A 2
2014-05-14 09:30:00 A 3
2014-05-14 09:40:00 A 4
2014-05-14 09:50:00 A 5
2014-05-14 10:00:00 B 1
2014-05-14 10:10:00 B 2
2014-05-14 10:20:00 B 3
2014-05-14 10:30:00 B 4
यह एक Oracle डाटाबेस था और मैं एक अंतराल समारोह "समूह" स्तंभ के आधार पर वर्गीकृत बनाना चाहता था और दिनांक मैं आसानी से इस समारोह का उपयोग कर सकते द्वारा आदेश दिया हैं :
LAG(Data,1,NULL) OVER (PARTITION BY Group ORDER BY Date ASC) AS Data_lagged
यह निम्न तालिका में परिणाम होगा:
Date Group Data Data lagged
2014-05-14 09:10:00 A 1 Null
2014-05-14 09:20:00 A 2 1
2014-05-14 09:30:00 A 3 2
2014-05-14 09:40:00 A 4 3
2014-05-14 09:50:00 A 5 4
2014-05-14 10:00:00 B 1 Null
2014-05-14 10:10:00 B 2 1
2014-05-14 10:20:00 B 3 2
2014-05-14 10:30:00 B 4 3
पांडा में मैं तिथि निर्धारित एक सूचकांक होने के लिए और पारी विधि का उपयोग कर सकते हैं:
db["Data_lagged"] = db.Data.shift(1)
केवल मुद्दा यह है कि यह एक कॉलम के आधार पर समूह नहीं करता है। यहां तक कि अगर मैं इंडेक्स के रूप में दो कॉलम दिनांक और समूह सेट करता हूं, तो भी मुझे लगी कॉलम में "5" मिल जाएगा।
क्या पांडस में लीड और अंतराल कार्यों के बराबर लागू करने का कोई तरीका है?
आपको बहुत बहुत धन्यवाद !! मुझे ठीक इसी की आवश्यकता थी। – gcarmiol