pandas 0.23 - Panel.reindex()
pandas.Panel.reindex

pandas.Panel.reindex
-
Panel.reindex(*args, **kwargs)
[source] -
वैकल्पिक भरने वाले तर्क के साथ नए सूचकांक में अनुरूप पैनल, पिछले सूचकांक में कोई मान नहीं रखने वाले स्थानों में NA / NaN रखकर। एक नई वस्तु तब तक उत्पन्न होती है जब तक कि नया सूचकांक वर्तमान के बराबर और कॉपी = गलत न हो
पैरामीटर: आइटम, major_axis, minor_axis : सरणी-जैसे, वैकल्पिक (कीवर्ड का उपयोग करके निर्दिष्ट किया जाना चाहिए)
के अनुरूप नए लेबल / सूचकांक। अधिमानतः डेटा को डुप्लिकेट करने से बचने के लिए एक अनुक्रमणिका ऑब्जेक्ट
विधि : {कोई नहीं, f बैकफिल ’/ 'bfill’, / pad ’/ ill ffill’, optional निकटतम ’}, वैकल्पिक
डेटा रीफ़्रेश किए गए DataFrame में छेद भरने के लिए उपयोग करने की विधि। कृपया ध्यान दें: यह केवल डेटाफ़्रेम / श्रृंखला पर एक मोनोटोनिक रूप से बढ़ते / घटते सूचकांक के साथ लागू होता है।
- डिफ़ॉल्ट: अंतराल को न भरें
- पैड / ffill: अंतिम वैध अवलोकन को अगले वैध के लिए आगे प्रचारित करें
- बैकफिल / bfill: अंतराल को भरने के लिए अगले वैध अवलोकन का उपयोग करें
- निकटतम: अंतराल को भरने के लिए निकटतम वैध टिप्पणियों का उपयोग करें
कॉपी : बूलियन, डिफ़ॉल्ट सही
एक नई वस्तु लौटाएं, भले ही उत्तीर्ण सूचकांक समान हों
स्तर : इंट या नाम
एक स्तर पर प्रसारण, पास किए गए MultiIndex स्तर पर सूचकांक मूल्यों का मिलान
fill_value : स्केलर, डिफ़ॉल्ट np.NaN
लापता मान के लिए उपयोग करने के लिए मूल्य। NaN के लिए चूक, लेकिन कोई भी "संगत" मूल्य हो सकता है
सीमा : int, डिफ़ॉल्ट कोई नहीं
आगे या पीछे भरने के लिए निरंतर तत्वों की अधिकतम संख्या
सहिष्णुता : वैकल्पिक
अनुभवहीन मैचों के लिए मूल और नए लेबल के बीच अधिकतम दूरी। मिलान स्थानों पर सूचकांक के मूल्य समीकरण
abs(index[indexer] - target) <= tolerance
संतुष्ट करते हैं।सहिष्णुता एक अदिश मान हो सकता है, जो सभी मानों या सूची-समान के लिए समान सहिष्णुता लागू करता है, जो प्रति तत्व चर सहिष्णुता को लागू करता है। सूची की तरह सूची, टपल, सरणी, श्रृंखला शामिल है, और सूचकांक के समान आकार होना चाहिए और इसका dtype सूचकांक के प्रकार से बिल्कुल मेल खाना चाहिए।
संस्करण 0.21.0 में नया: (सूची की तरह सहिष्णुता)
यह दिखाता है: -
reindexed : Panel
उदाहरण
DataFrame.reindex
दो कॉलिंग सम्मेलनों का समर्थन करता है-
(index=index_labels, columns=column_labels, ...)
-
(labels, axis={'index', 'columns'}, ...)
हम आपके इरादे को स्पष्ट करने के लिए कीवर्ड तर्कों का उपयोग करने की सलाह देते हैं।
कुछ काल्पनिक डेटा के साथ एक डेटाफ्रेम बनाएं।
>>> index = ['Firefox', 'Chrome', 'Safari', 'IE10', 'Konqueror'] >>> df = pd.DataFrame({ ... 'http_status': [200,200,404,404,301], ... 'response_time': [0.04, 0.02, 0.07, 0.08, 1.0]}, ... index=index) >>> df http_status response_time Firefox 200 0.04 Chrome 200 0.02 Safari 404 0.07 IE10 404 0.08 Konqueror 301 1.00
एक नया सूचकांक बनाएं और डेटाफ़्रेम को फिर से जोड़ें। नए सूचकांक में डिफ़ॉल्ट मानों के पास जो डेटाफ़्रेम में संबंधित रिकॉर्ड नहीं है उन्हें
NaN
असाइन किया गया है।>>> new_index= ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex(new_index) http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.02
हम कीवर्ड
fill_value
मान को पास करके लापता मानों को भर सकते हैं। क्योंकि अनुक्रमणिका नीरस रूप से बढ़ती या घटती नहीं है, हमNaN
मानों को भरने के लिए खोजशब्दmethod
तर्कों का उपयोग नहीं कर सकते हैं।>>> df.reindex(new_index, fill_value=0) http_status response_time Safari 404 0.07 Iceweasel 0 0.00 Comodo Dragon 0 0.00 IE10 404 0.08 Chrome 200 0.02
>>> df.reindex(new_index, fill_value='missing') http_status response_time Safari 404 0.07 Iceweasel missing missing Comodo Dragon missing missing IE10 404 0.08 Chrome 200 0.02
हम कॉलम को फिर से जोड़ भी सकते हैं।
>>> df.reindex(columns=['http_status', 'user_agent']) http_status user_agent Firefox 200 NaN Chrome 200 NaN Safari 404 NaN IE10 404 NaN Konqueror 301 NaN
या हम "अक्ष-शैली" कीवर्ड तर्क का उपयोग कर सकते हैं
>>> df.reindex(['http_status', 'user_agent'], axis="columns") http_status user_agent Firefox 200 NaN Chrome 200 NaN Safari 404 NaN IE10 404 NaN Konqueror 301 NaN
reindex
में भरने की कार्यक्षमता को और अधिक स्पष्ट करने के लिए, हम एक मोनोटोनॉली बढ़ते सूचकांक (उदाहरण के लिए, तारीखों का एक क्रम) के साथ एक डेटाफ्रेम बनाएंगे।>>> date_index = pd.date_range('1/1/2010', periods=6, freq='D') >>> df2 = pd.DataFrame({"prices": [100, 101, np.nan, 100, 89, 88]}, ... index=date_index) >>> df2 prices 2010-01-01 100 2010-01-02 101 2010-01-03 NaN 2010-01-04 100 2010-01-05 89 2010-01-06 88
मान लीजिए कि हम एक विस्तृत तिथि सीमा को कवर करने के लिए डेटाफ्रेम का विस्तार करने का निर्णय लेते हैं।
>>> date_index2 = pd.date_range('12/29/2009', periods=10, freq='D') >>> df2.reindex(date_index2) prices 2009-12-29 NaN 2009-12-30 NaN 2009-12-31 NaN 2010-01-01 100 2010-01-02 101 2010-01-03 NaN 2010-01-04 100 2010-01-05 89 2010-01-06 88 2010-01-07 NaN
अनुक्रमणिका प्रविष्टियों का मूल डेटा फ़्रेम में कोई मान नहीं था (उदाहरण के लिए, '2009-12-29') डिफ़ॉल्ट रूप से
NaN
से भरा हुआ है। यदि वांछित है, तो हम कई विकल्पों में से एक का उपयोग करके लापता मूल्यों को भर सकते हैं।उदाहरण के लिए,
NaN
मानों को भरने के लिए अंतिम वैध मान कोbfill
करने के लिए,method
कीवर्ड के तर्क के रूप मेंbfill
पास करें।>>> df2.reindex(date_index2, method='bfill') prices 2009-12-29 100 2009-12-30 100 2009-12-31 100 2010-01-01 100 2010-01-02 101 2010-01-03 NaN 2010-01-04 100 2010-01-05 89 2010-01-06 88 2010-01-07 NaN
कृपया ध्यान दें कि मूल डेटाफ्रेम (सूचकांक मूल्य 2010-01-03 में) में मौजूद
NaN
मूल्य किसी भी मूल्य प्रसार योजनाओं से नहीं भरा जाएगा। ऐसा इसलिए है क्योंकि रेनडेक्सिंग करते समय डेटाफ़्रेम मानों पर ध्यान नहीं दिया जाता है, लेकिन केवल मूल और वांछित अनुक्रमितों की तुलना की जाती है। यदि आप मूलfillna()
में मौजूदNaN
मानों को भरना चाहते हैं, तोfillna()
विधि का उपयोग करें।अधिक के लिए उपयोगकर्ता गाइड देखें।