पंडों ने श्रेणीबद्ध मूल्यों को अंतर मूल्यों में परिवर्तित किया

Pandom Ne Srenibad Dha Mulyom Ko Antara Mulyom Mem Parivartita Kiya



मशीन लर्निंग निष्पादन के लिए डेटासेट में संख्यात्मक और श्रेणीबद्ध चर दोनों शामिल हैं। श्रेणीबद्ध चर स्ट्रिंग-प्रकार के डेटा हैं जिन्हें मनुष्य आसानी से समझ लेते हैं। दूसरी ओर, मशीनें स्पष्ट इनपुट को सीधे नहीं समझ सकती हैं। नतीजतन, श्रेणीबद्ध सामग्री को संख्यात्मक मूल्यों में परिवर्तित किया जाना चाहिए जो मशीनें व्याख्या कर सकती हैं।

श्रेणीबद्ध को Int . में बदलने के तरीके

डेटाफ़्रेम के श्रेणीबद्ध को इंट मानों में परिवर्तित करने के लिए 'पांडा' में उपलब्ध तकनीकें यहां प्रदान की गई हैं:

    • DataFrame.replace () विधि
    • DataFrame.apply(factorize ()) विधि

हम इस लेख में इन विधियों का उपयोग करेंगे और विस्तार से बताएंगे कि 'पांडा' में दोनों विधियों का उपयोग कैसे करें।







उदाहरण # 1: पंडों की जगह का उपयोग () विधि

डेटाफ़्रेम में श्रेणीबद्ध मानों को पांडा 'DataFrame.replace ()' विधि का उपयोग करके int में परिवर्तित किया जा सकता है। हम यहां इस विधि का उपयोग करना सीखेंगे।



हमने पायथन में इस तकनीक को बेहतर तरीके से निष्पादित करने के लिए 'स्पाइडर' टूल का उपयोग किया। स्क्रिप्ट लिखना शुरू करने के लिए, 'स्पाइडर' टूल में एक नई पायथन फ़ाइल खोलें। स्क्रिप्ट लिखने के लिए सबसे महत्वपूर्ण आवश्यकता उपयुक्त पुस्तकालयों का आयात करना है। चूंकि हमें 'पांडा' पद्धति को लागू करना है, इसलिए हमारे पास 'पंडों' की सुविधाओं तक पहुंचने के लिए 'पीडी के रूप में आयात पांडा' होगा। फिर हम अपना कोर पायथन कोड शुरू करते हैं। हमने 'pd.DataFrame ()' पद्धति का उपयोग करके एक DataFrame बनाया है। डेटाफ़्रेम को तीन कॉलम 'नाम', 'डिग्री' और 'आय' द्वारा आरंभ किया गया है। सभी DataFrame के कॉलम समान लंबाई के मानों को संग्रहीत करते हैं।



पहले कॉलम, 'नाम' में आठ मान हैं जो 'बुश', 'अल्बर्ट', 'हैरी', 'पीटर', 'एम्मा', 'न्यूटन', 'स्मिथ' और 'एल्सा' हैं। दूसरा कॉलम, 'डिग्री', आठ श्रेणीबद्ध मूल्यों को भी संग्रहीत करता है, जो 'बीएस', 'एमएस', 'एमएस', 'बीएस', 'बीएस', 'बीएस', 'एमएस', और 'एमएस' हैं। अंतिम कॉलम 'आय' में आठ पूर्णांक मान '60000', '80000', '75000', '45000', '56000', '65000', '55000', और '70000' हैं। हमने 'pd.DataFrame ()' फ़ंक्शन को लागू करने के आउटपुट को संग्रहीत करने के लिए एक डेटाफ़्रेम ऑब्जेक्ट 'स्टाफ़' बनाया है। अपने प्रारंभिक डेटाफ़्रेम को प्रदर्शित करने के लिए, हमने स्क्रिप्ट की अंतिम पंक्ति में इसके पैरामीटर के रूप में डेटाफ़्रेम के नाम 'स्टाफ़' के साथ 'प्रिंट ()' विधि का उपयोग किया।






टर्मिनल पर आउटपुट देखने के लिए, 'स्पाइडर' टूल पर 'रन फाइल' बटन का उपयोग करें या 'शिफ्ट + एंटर' कुंजी दबाएं। टर्मिनल पर प्रदर्शित आउटपुट डेटाफ़्रेम को तीन स्तंभों के साथ दिखाता है जो सफलतापूर्वक जेनरेट किए गए हैं।


अब, हमारे DataFrame का निर्माण किया गया है, हमें उस पर आवश्यक तकनीक लागू करनी होगी। पांडा 'DataFrame.replace ()' विधि का उपयोग निर्दिष्ट कॉलम के श्रेणीबद्ध मानों को पूर्णांक मानों में परिवर्तित करने के लिए किया जाएगा ताकि मशीनें उन्हें पठनीय बना सकें।



हमने डेटाफ़्रेम का नाम उस विशेष कॉलम नाम के साथ प्रदान किया है जिसके मूल्यों को हमें बदलने की आवश्यकता है, जो कि 'स्टाफ ['डिग्री']' है। हम कॉलम 'डिग्री' के मानों को पूर्णांक मानों से प्रतिस्थापित करना चाहते हैं, जिसमें श्रेणीबद्ध मान हैं। फिर '.replace ()' विधि लागू की जाती है। हमने इसे दो सेटों में पास किया है; पहले में दो स्पष्ट मान '['बीएस', 'एमएस']' शामिल हैं जिन्हें हमने 'डिग्री' कॉलम से निकाला है। जैसा कि आप देख सकते हैं, 'डिग्री' कॉलम इन दो मानों का बार-बार उपयोग करता है। अगर हमारे पास तीसरा मूल्य होता, तो हमने उसका भी उल्लेख किया होगा। दूसरे सेट में दो इंट वैल्यू '[0, 1]' हैं, जो क्रमशः पहले सेट वैल्यू की जगह लेंगे। अन्य पैरामीटर, 'इनप्लेस', को 'ट्रू' के रूप में सेट किया गया है, जो मूल्यों के प्रतिस्थापन को सक्षम करता है। यदि 'गलत' पर सेट है, तो यह प्रतिस्थापन को अक्षम कर देगा। अंत में, हमने अपडेट किए गए 'स्टाफ' डेटाफ्रेम को प्रदर्शित करने के लिए 'प्रिंट ()' विधि का उपयोग किया है।


परिणामी डेटाफ़्रेम में 'डिग्री' कॉलम में पूर्णांक मान होते हैं। मान 'BS' को '0s' से बदल दिया जाता है, और 'MS' को '1s' से बदल दिया जाता है।


आप संपत्ति 'dataframe.dtype' का उपयोग करके प्रत्येक कॉलम के लिए डेटाटाइप को भी सत्यापित कर सकते हैं। यह हमें निर्दिष्ट डेटाफ़्रेम में सभी स्तंभों के डेटाटाइप प्राप्त करेगा।


यहां, हमें हमारे डेटाफ्रेम के डेटाटाइप मिले। हम देख सकते हैं कि 'डिग्री' कॉलम का डेटाटाइप 'int64' में बदल गया है।

उदाहरण # 2: पंडों का उपयोग करना लागू () विधि

अन्य विधि पांडा हमें प्रदान करते हैं 'DataFrame.apply ()' श्रेणीबद्ध मानों को पूर्णांक में परिवर्तित करने के लिए कार्य करता है। पिछले उदाहरण में, हमने एक श्रेणीबद्ध कॉलम को पूर्णांक में बदलना सीखा। अब हम देखेंगे कि डेटाफ़्रेम में सभी श्रेणीबद्ध स्तंभों को एक इंट में कैसे परिवर्तित किया जाए।

व्यावहारिक कार्यान्वयन से शुरुआत करते हुए, हमें इस पद्धति के लिए आवश्यक पुस्तकालय आयात करना चाहिए, जो कि पांडा है। हमने 'स्पाइडर' टूल में अपनी पायथन फ़ाइल में पांडा को आयात करने के लिए 'पीडी के रूप में आयात पांडा' स्क्रिप्ट का उपयोग किया है, जो हमें 'पीडी' का उपयोग करके पांडा मॉड्यूल तक पहुंचने की अनुमति देगा। हमने डेटाफ़्रेम बनाने के लिए 'pd.DataFrame ()' फ़ंक्शन का उपयोग किया।

इस डेटाफ़्रेम में चार कॉलम 'समूह', 'स्थिति', 'स्कोर' और 'सहायता' हैं। प्रत्येक कॉलम 9 मान संग्रहीत करता है। 'समूह' कॉलम मान 'X', 'X', 'Y', 'X', 'Y', 'Y', 'Y', 'X', और 'Y' हैं। 'स्थिति' कॉलम में 9 मान हैं जो 'ए', 'सी', 'डी', 'ए', 'सी', 'बी', 'बी', 'डी' और 'बी' हैं। 'स्कोर' कॉलम में '4', '8', '7', '10', '9', '5', '7', '3' और '23' के रूप में पूर्णांक मान हैं। अंतिम कॉलम, 'सहायता' में '10', '2', '3', '9', '3', '7', '4', '2' और '9' मान हैं।

हमने एक डेटाफ़्रेम ऑब्जेक्ट 'प्रोग' बनाया है और इसे 'पीडी.डेटाफ़्रेम ()' विधि को लागू करने का आउटपुट दिया है। तो, 'pd.DataFrame ()' से उत्पन्न परिणामी डेटाफ़्रेम फ़्रेम 'प्रोग' में संग्रहीत किया जाएगा। अब, हम इस ऑब्जेक्ट का उपयोग करके DataFrame तक पहुंच सकते हैं। इस डेटाफ़्रेम को देखने के लिए, हमने डेटाफ़्रेम ऑब्जेक्ट 'प्रोग' के साथ 'प्रिंट ()' विधि को इसके पैरामीटर के रूप में नियोजित किया है।


जब पिछले पायथन प्रोग्राम को निष्पादित किया जाता है, तो टर्मिनल पर चार कॉलम वाला डेटाफ्रेम प्रदर्शित किया जाएगा।


कई श्रेणीबद्ध स्तंभों को पूर्णांकों में बदलने के लिए, हमने इस तकनीक का अनुसरण किया है। हमें सबसे पहले पांडा 'DataFrame.select_dtypes().columns' विधि को नियोजित करके ऑब्जेक्ट डेटाटाइप वाले सभी कॉलम का चयन करना होगा। जब हम इसे अपनी स्क्रिप्ट में आवश्यकतानुसार उपयोग करते हैं, तो यह 'prog.select_dtypes(['object']).columns' होगा। यह 'प्रोग' डेटाफ्रेम में डेटाटाइप 'ऑब्जेक्ट' वाले सभी कॉलम का चयन करेगा। हमने इस विधि के आउटपुट को स्टोर करने के लिए एक वेरिएबल 'concate_col' बनाया है। अब हम केवल इस चर 'concat_col' का उपयोग करके 'ऑब्जेक्ट' डेटाटाइप कॉलम तक पहुंच सकते हैं।

अब, इन स्तंभों को पूर्णांक में बदलने के लिए, हमने 'pd.factorize ()' विधि के साथ 'DataFrame.apply ()' पांडा का उपयोग किया है। हमने डेटाफ़्रेम नाम के साथ 'concat_col' चर का उपयोग किया है, फिर '.apply ()' विधि लागू की जाती है। '.apply' विधि के कोष्ठक के बीच, हमने 'pd.factorize ()' विधि को बुलाया है जहां 'x' 'ऑब्जेक्ट' डेटाटाइप के साथ 'प्रोग' डेटाफ्रेम से कोई भी मान हो सकता है। इस प्रकार, कोड की यह पूरी लाइन 'prog['concat_col'] = prog['concat_col'].apply(lambda x : pd.factorize(x)[0]) के रूप में लिखी जाती है। फ़ैक्टराइज़ विधि के साथ एक मान लेगा एक 'ऑब्जेक्ट' डेटाटाइप और इसे 'इंट' में परिवर्तित करें। 'प्रोग' चर को इसके पैरामीटर के रूप में पास करके 'प्रिंट ()' फ़ंक्शन को कॉल करके अंतिम आउटपुट प्रदर्शित किया जा सकता है।


अद्यतन किए गए डेटाफ़्रेम में, हम देख सकते हैं कि 'समूह' और 'स्थिति' कॉलम के मान शुरू में श्रेणीबद्ध थे, अर्थात, वस्तु। अभी भी अद्यतन आउटपुट डेटाफ़्रेम में, दोनों स्तंभों में पूर्णांक मान हैं। 'समूह' कॉलम में, 'X' को '0' और 'Y' को '1' से बदल दिया जाता है। जबकि 'स्थिति' कॉलम 'ए' को '0', 'सी' को '1', 'डी' को '2' और 'बी' को '3' से बदल दिया जाता है।


अब, अपडेट किए गए डेटाटाइप्स को सत्यापित करते हैं।


निम्नलिखित सभी कॉलम में 'int64' डेटाटाइप है।

निष्कर्ष

हमारी मार्गदर्शिका श्रेणीबद्ध मानों को संख्यात्मक मानों में परिवर्तित करने के इर्द-गिर्द घूमती है ताकि उन्हें मशीनों द्वारा समझा जा सके क्योंकि ऑब्जेक्ट डेटाटाइप उनके द्वारा संसाधित नहीं किया जा सकता है। हमने आपको आवश्यक डेटाटाइप प्राप्त करने के लिए 'पांडा' पुस्तकालय द्वारा चित्रित दो दृष्टिकोणों से परिचित कराया है। साथ ही, 'स्पाइडर' टूल पर चलने वाले उदाहरण कोड के व्यावहारिक कार्यान्वयन के साथ, हमने प्रत्येक उदाहरण के परिणाम को साझा किया। अंत में, हमने वांछित परिणाम प्राप्त करने के लिए हर कदम पर विस्तार से बताया।