मुख्य सामग्री पर जाएँ

Python में Pandas Profiling (ydata-profiling): शुरुआती लोगों के लिए मार्गदर्शिका

Python में ydata-profiling लाइब्रेरी का उपयोग करके कई फीचर्स वाले डेटासेट्स के लिए विस्तृत रिपोर्ट कैसे जनरेट करें, यह सीखें।
· 9 मि॰ पढ़ें

AI के साथ खोजें

जब आप किसी डेटासेट के साथ काम कर रहे हों, जैसे 10,000 पंक्तियाँ और 50 कॉलम वाला, तो ऐसे डेटासेट्स का त्वरित अवलोकन पाना चुनौतीपूर्ण हो सकता है। यहीं पर pandas Profiling काम आता है। यह आपके डेटासेट की एक व्यापक रिपोर्ट बनाकर प्रक्रिया को सरल बनाता है, जिससे बड़े डेटासेट्स की खोज में लगने वाला समय कम होता है।

इस लेख में, आप पूर्व में pandas Profiling के नाम से जानी जाने वाली चीज़ से शुरुआत करना सीखेंगे। pandas-profiling पैकेज का नाम हाल ही में बदलकर ydata-profiling कर दिया गया है। इस ट्यूटोरियल में, आप सीखेंगे कि डेटासेट से प्रोफ़ाइल रिपोर्ट कैसे जनरेट करें, प्रोफ़ाइल रिपोर्ट में क्या-क्या होता है, इस रिपोर्ट को कैसे पढ़ें, और अंत में आगे के उपयोग के लिए इस रिपोर्ट को कैसे सहेजें।

pandas Profiling (ydata-profiling) क्या है?

Pandas Profiling का उपयोग डेटासेट के लिए एक संपूर्ण और विस्तृत रिपोर्ट जनरेट करने के लिए किया जाता है, जिसमें जनरेट की गई रिपोर्ट में कई फीचर्स और कस्टमाइज़ेशन होते हैं। इस रिपोर्ट में डेटासेट के आँकड़े, मानों का वितरण, गायब मान, मेमोरी उपयोग आदि जैसी विभिन्न जानकारियाँ शामिल होती हैं, जो डेटा की कुशलतापूर्वक खोज और विश्लेषण के लिए बहुत उपयोगी हैं।

Pandas Profiling, Exploratory Data Analysis (EDA) में भी बहुत मददगार है। EDA का उपयोग डेटा की अंतर्निहित संरचना को समझने, पैटर्न का पता लगाने और दृश्य प्रारूप में अंतर्दृष्टि उत्पन्न करने के लिए किया जाता है।

EDA के लिए, हमें कई पंक्तियों का कोड लिखना पड़ता है, जो कभी-कभी जटिल और समय लेने वाला हो सकता है, लेकिन Pandas Profiling का उपयोग करके इसे कुछ ही लाइनों के कोड से स्वचालित किया जा सकता है।

यदि आपको EDA का पुनरावलोकन चाहिए, तो Python Exploratory Data Analysis पढ़ें।

यहाँ प्रोफ़ाइल रिपोर्ट का एक उदाहरण दिया गया है:

pandas प्रोफ़ाइल रिपोर्ट का अवलोकन

चित्र: लेखक द्वारा

pandas Profiling के फायदे और नुकसान

उपयोग में सरलता, समय दक्षता और इंटरैक्टिव HTML रिपोर्ट्स के कारण EDA में pandas profiling का व्यापक रूप से उपयोग होता है। हालांकि, बड़े डेटासेट्स के साथ pandas profiling का उपयोग करने के कुछ संभावित नुकसान भी हैं।

फायदे

  • उपयोग में सरल: Pandas profiling का उपयोग करना बहुत आसान है। आपको केवल दो-तीन लाइनों का कोड लिखकर एक व्यापक रिपोर्ट जनरेट करनी होती है।
  • समय की बचत: Pandas profiling न्यूनतम प्रयास में डेटासेट के बारे में व्यापक जानकारी वाली रिपोर्ट बना सकता है। यह EDA के लिए एक बेहतरीन विकल्प बनाता है।
  • इंटरैक्टिव HTML रिपोर्ट्स: Pandas profiling इंटरैक्टिव HTML रिपोर्ट्स जनरेट करता है जिन्हें विश्लेषित और समझना आसान होता है। रिपोर्ट्स आपको विशिष्ट वेरिएबल्स में गहराई से जाने और उनके वितरण का पता लगाने देती हैं।

नुकसान

  • बड़े डेटासेट्स के साथ प्रदर्शन: Pandas profiling की मुख्य कमी बड़े डेटासेट्स के साथ इसके प्रदर्शन में निहित है। जैसे-जैसे डेटा की मात्रा बढ़ती है, रिपोर्ट जनरेट करने का समय काफी बढ़ जाता है, जिससे बड़े पैमाने पर डेटा विश्लेषण के लिए यह कम कुशल हो जाता है।

pandas Profiling की स्थापना

pandas Profiling स्थापित करने के लिए, आप अपनी पसंद और वातावरण के अनुसार pip या conda में से किसी एक का उपयोग कर सकते हैं।

Pip का उपयोग करते हुए:

कमांड प्रॉम्प्ट या टर्मिनल खोलें और निम्न कमांड चलाएँ:

pip install ydata-profiling

Conda का उपयोग करते हुए:

Anaconda PowerShell Prompt खोलें और निम्न कमांड चलाएँ:

conda install -c conda-forge ydata-profiling

Pandas Profiling आयात करना

इंस्टॉलेशन सफलतापूर्वक पूरा होने के बाद, निम्न स्टेटमेंट का उपयोग करके ydata-profiling आयात करें।

from ydata_profiling import ProfileReport

यह ydata_profiling लाइब्रेरी से ProfileReport क्लास आयात करेगा। आप इस क्लास का उपयोग अपने DataFrames के लिए प्रोफ़ाइल रिपोर्ट्स जनरेट करने के लिए कर सकते हैं।

प्रोफ़ाइल रिपोर्ट जनरेट करना

प्रोफ़ाइल रिपोर्ट जनरेट करने के लिए, नीचे दिए गए चरणों का पालन करें:

  1. pandas आयात करें।
  2. ydata_profiling लाइब्रेरी से ProfileReport क्लास आयात करें।
  3. अपने डेटा का उपयोग करके एक DataFrame बनाएं।
  4. ProfileReport() क्लास का उपयोग करें और DataFrame पास करें।

उपरोक्त चरणों का पालन करते हुए यह सीधा-सा कोड है। पहले, हम आवश्यक लाइब्रेरीज़ आयात करते हैं और फिर read_csv() फ़ंक्शन का उपयोग करके CSV फ़ाइल पढ़ते हैं। इस मामले में, हम Top 100 Bestselling Book Reviews की CSV फ़ाइल का उपयोग कर रहे हैं। इसके बाद, हम ProfileReport क्लास का उपयोग करते हैं और उसके अंदर अपना DataFrame पास करते हैं।

इसके अतिरिक्त, हम एक नया शीर्षक "Trending Books" सेट कर रहे हैं। डिफ़ॉल्ट रूप से शीर्षक कुछ और होता है, लेकिन यदि आप इसे कस्टमाइज़ करना चाहते हैं, तो क्लास के भीतर title वेरिएबल का उपयोग करें। अंत में, रिपोर्ट जनरेट और प्रदर्शित करने के लिए, आप profile या profile.to_notebook_iframe() में से किसी एक का उपयोग कर सकते हैं।

प्रोफ़ाइल रिपोर्ट जनरेट करने का कोड

रिपोर्ट निम्न क्रम में जनरेट होगी: पहले पूरे डेटासेट का सारांश बनाया जाएगा। फिर रिपोर्ट की संरचना जनरेट होगी। अंत में, यह रिपोर्ट प्रदर्शित होगी, जिसे आप HTML फ़ाइल के रूप में सहेज सकते हैं और आगे के विश्लेषण के लिए उपयोग कर सकते हैं।

प्रोफ़ाइल रिपोर्ट जनरेट हो रही है।

यह रही जनरेट की गई रिपोर्ट, जिसमें Overview, Variables, Interactions, Correlations, Missing Values, और Sample जैसे विभिन्न सेक्शन शामिल हैं।

विभिन्न सेक्शनों सहित प्रोफ़ाइल रिपोर्ट का पूर्ण अवलोकन

यदि आप EDA और विशेष रूप से डेटा प्रोफाइलिंग में नए हैं, तो Exploratory Data Analysis of Craft Beers: Data Profiling पढ़ें।

जनरेट की गई प्रोफ़ाइल रिपोर्ट की जाँच

रिपोर्ट कई सेक्शनों में जनरेट होती है, आइए एक-एक करके सभी सेक्शनों का अन्वेषण करें।

Overview

यह सेक्शन 3 टैब्स से बना है: Overview, Alerts, और Reproduction।

Overview टैब में डेटासेट के आँकड़े शामिल होते हैं, जैसे वेरिएबल्स की संख्या (या विभिन्न कॉलमों की संख्या), गायब मानों वाली कोशिकाओं की संख्या, डुप्लिकेट पंक्तियाँ, और मेमोरी में डेटासेट का आकार।

हमारे डेटासेट में कुल 8 वेरिएबल्स या कॉलम हैं। वेरिएबल्स में से चार संख्यात्मक हैं (रैंक, पुस्तक मूल्य, रेटिंग, और प्रकाशन वर्ष), जबकि शेष चार टेक्स्ट-आधारित हैं (पुस्तक का शीर्षक, लेखक, शैली, और URL)। डुप्लिकेट पंक्तियाँ नहीं हैं, जैसा कि डुप्लिकेट्स के लिए 0 की गिनती से पता चलता है। साथ ही, 'rating' कॉलम में तीन मान गायब हैं।

रिपोर्ट के Overview सेक्शन का Overview टैब

Alerts टैब में अन्य वेरिएबल्स के साथ सहसंबंध, गायब मान, यूनिक मान, शून्य आदि से संबंधित अलर्ट शामिल होते हैं।

हमारे मामले में, URL और Rank कॉलम में यूनिक मान हैं, और rating कॉलम में तीन मान गायब हैं।

Overview सेक्शन का Alerts टैब

Reproduction टैब दिखाता है कि विश्लेषण कब शुरू हुआ और कब समाप्त हुआ। यह विश्लेषण की अवधि प्रदर्शित करता है, जिसमें वह सॉफ्टवेयर संस्करण भी शामिल है जिसका आप उपयोग कर रहे हैं (मेरे मामले में, ydata-profiling v4.6.1 है)।

Overview सेक्शन का Reproduction टैब

Variables

Variables सेक्शन में आपके डेटासेट के सभी कॉलम शामिल होते हैं। आप टॉगल एरो पर क्लिक करके कोई भी कॉलम चुन सकते हैं।

विभिन्न कॉलमों के साथ Variables सेक्शन

मान लें कि आपने rating कॉलम चुना है, तो रिपोर्ट दिखाती है कि इस कॉलम में 100 पंक्तियों में फैले 10 यूनिक मान हैं। इसके अतिरिक्त, तीन कोशिकाओं में कोई मान नहीं है। न्यूनतम मान 4.1 है, जबकि अधिकतम 5 है। सभी रेटिंग्स का औसत भी प्रदर्शित किया गया है।

Variables सेक्शन का rating कॉलम

एक महत्वपूर्ण बात: दाएँ निचले कोने में एक More Details बटन है। इस बटन पर क्लिक करने से रेटिंग कॉलम के बारे में और जानकारी मिलती है, जैसे माध्यिका, मानक विचलन, गुणांक विचलन, और कॉलम से संबंधित अन्य विभिन्न विशेषताएँ।

Correlations

यह दो वेरिएबल्स के बीच संबंधों के अध्ययन में मदद करता है, जिसे सहसंबंध (correlation) कहा जाता है। नीचे दिया गया हीटमैप सभी वेरिएबल्स के बीच संबंधों को दिखाता है। रैंक, रैंक से 100% संबंधित है, और इसलिए इसे बाएँ शीर्ष पर गहरे नीले वर्ग द्वारा दर्शाया गया है।

प्रकाशन वर्ष का पुस्तक मूल्य से मध्यम संबंध है (लगभग 0.75), जिसे हल्के नीले रंग से दर्शाया गया है क्योंकि वे पूरी तरह संबंधित नहीं हैं। उदाहरण के लिए, पुस्तक मूल्य 20.93 है और प्रकाशन वर्ष 2023 है, तो ये संख्याएँ एक-दूसरे से कुछ हद तक संबंधित हैं।

Correlations सेक्शन का हीटमैप टैब

Missing Values

यह सेक्शन डेटासेट में मौजूद गायब मानों के बारे में जानकारी देता है। इस सेक्शन के Count टैब से पता चलता है कि rating कॉलम में 3 मान गायब हैं।

Missing Values सेक्शन का Count टैब

Missing values सेक्शन के Matrix टैब में, Rating कॉलम में तीन क्षैतिज रेखाएँ दिखाई देती हैं, जो इंगित करती हैं कि कॉलम में तीन मान गायब हैं।

Missing Values सेक्शन का Matrix टैब

Sample

इस सेक्शन में डेटासेट का एक नमूना होता है। यह डेटासेट की पहली और अंतिम 10 पंक्तियाँ प्रदर्शित करता है।

Sample सेक्शन की पहली और अंतिम पंक्तियाँ

प्रोफ़ाइल रिपोर्ट सहेजना

आपकी प्रोफ़ाइल रिपोर्ट जनरेट हो चुकी है, और आप इसे आगे उपयोग के लिए सहेजना चाहेंगे, जैसे प्रोफ़ाइल रिपोर्ट से उपयोगी डेटा निकालना या इसे अन्य अनुप्रयोगों के साथ एकीकृत करना। आप रिपोर्ट को HTML और JSON फ़ॉर्मेट्स में सहेज सकते हैं। to_file() मेथड Jupyter Notebook के बाहर रिपोर्ट को सहेजेगा।

रिपोर्ट HTML और JSON फ़ॉर्मेट में जनरेट और सहेजी जा रही है

यह रहा Pandas profiling के लिए पूरा कोड:

from ydata_profiling import ProfileReport
import pandas as pd

df = pd.read_csv("trending-books.csv")
profile = ProfileReport(df, title="Trending Books")
profile.to_notebook_iframe()
profile.to_file("books_data.html")

उन्नत उपयोग

रिपोर्ट जनरेट करने के लिए, हम बस CSV फ़ाइल पास करते हैं और कुछ नहीं। हम कोई अतिरिक्त तत्व शामिल नहीं करते; कार्यों में केवल डिफ़ॉल्ट मानों का उपयोग किया जाता है।

हालाँकि, ऐसे सेक्शन हो सकते हैं जिन्हें आप छोड़ना चाहते हैं या अतिरिक्त जानकारी शामिल करना चाहते हैं। यहीं पर Pandas Profiling के उन्नत उपयोग काम आते हैं। आप डिफ़ॉल्ट कॉन्फ़िगरेशन को बदलकर रिपोर्ट के विभिन्न पहलुओं को नियंत्रित कर सकते हैं।

यदि आप डेटा विश्लेषण और विज़ुअलाइज़ेशन टूल्स के बारे में और सीखने में रुचि रखते हैं, तो 21 Essential Python Tools पढ़ें।

डेटासेट विवरण और मेटाडेटा

रिपोर्ट को सहकर्मियों के साथ साझा करते समय या ऑनलाइन प्रकाशित करते समय, डेटासेट का मेटाडेटा, जैसे लेखक, कॉपीराइट धारक या विवरण शामिल करना महत्वपूर्ण हो सकता है। ydata-profiling रिपोर्ट को उस जानकारी से पूरक करने की अनुमति देता है।

वर्तमान में समर्थित गुण हैं: description, creator, author, url, copyright_year, और copyright_holder। डिफ़ॉल्ट रूप से, डेटासेट्स रिपोर्ट के Overview सेक्शन में प्रस्तुत किए जाते हैं।

from ydata_profiling import ProfileReport
import pandas as pd

df = pd.read_csv("trending-books.csv")
report = ProfileReport(
    df,
    title="Trending Books",
    dataset={
        "description": "This profiling report was generated for the datacamp learning resources.",
        "author": "Satyam Tripathi",
        "copyright_holder": "DataCamp, Inc.",
        "copyright_year": 2023,
        "url": "<https://www.datacamp.com/>",
    },
)
report.to_notebook_iframe()

यह रहा कोड आउटपुट:

Overview सेक्शन का dataset टैब

डेटासेट विवरण प्रदान करने के अतिरिक्त, उपयोगकर्ता अक्सर टीम सदस्यों और हितधारकों के साथ रिपोर्ट साझा करते समय कॉलम-विशिष्ट विवरण शामिल करना चाहते हैं। डिफ़ॉल्ट रूप से, ये विवरण रिपोर्ट के Overview सेक्शन में प्रस्तुत किए जाते हैं।

from ydata_profiling import ProfileReport
import pandas as pd

df = pd.read_csv("trending-books.csv")
report = ProfileReport(
    df,
    title="Trending Books",
    variables={
        "descriptions": {
            "genre": "It contains the genre or category of the book. For example, it could be 'Mystery', 'Science Fiction', 'Romance', 'Fantasy', etc.",
            "url": "It contains Amazon links for each book.",
            "rating": "It contains the rating assigned to the book out of 5.",
        }
    },
)
report.to_notebook_iframe()

यह रहा कोड आउटपुट:

Overview सेक्शन का variables टैब

बड़े डेटासेट्स की प्रोफाइलिंग

डिफ़ॉल्ट रूप से, ydata-profiling डेटा विश्लेषण के लिए अधिकतम अंतर्दृष्टि प्रदान करने हेतु इनपुट डेटासेट का व्यापक सारांश तैयार करता है। छोटे डेटासेट्स के लिए, ये गणनाएँ जल्दी की जा सकती हैं। हालाँकि, बड़े डेटासेट्स के लिए, यह बोझिल हो सकता है।

ydata-profiling में एक मिनिमल कॉन्फ़िगरेशन फ़ाइल शामिल है जिसमें सबसे महंगी गणनाएँ डिफ़ॉल्ट रूप से बंद रहती हैं। यह कॉन्फ़िगरेशन सहसंबंध, इंटरैक्शन आदि जैसे समय लेने वाले सेक्शनों को बाहर रखता है।

from ydata_profiling import ProfileReport
import pandas as pd

df = pd.read_csv("trending-books.csv")
report = ProfileReport(df, minimal=True)
report.to_notebook_iframe()

ydata-profiling बड़े डेटासेट्स को संभालने की चुनौती से निपटने के लिए कई विकल्प भी प्रदान करता है। उन्हें यहाँ देखें।

निष्कर्ष

इस लेख में, आपने ydata-profiling नामक अनोखी लाइब्रेरी के बारे में सीखा, जिसे पहले "Pandas Profiling" के रूप में जाना जाता था, जो केवल कुछ पंक्तियों के कोड से रिपोर्ट बनाने में सक्षम बनाती है। आपने सीखा कि प्रोफ़ाइल रिपोर्ट कैसे जनरेट करें और प्रोफ़ाइल रिपोर्ट में मौजूद सभी सेक्शनों और टैब्स का अन्वेषण कैसे करें। सबसे महत्वपूर्ण, आपने इस लाइब्रेरी के उन्नत उपयोगों के बारे में सीखा, जो आपको आपके डेटा साइंस सफर में एक कदम आगे ले जाएगा।

Pandas दुनिया की सबसे लोकप्रिय Python लाइब्रेरी है, जिसका उपयोग डेटा मैनिपुलेशन से लेकर डेटा विश्लेषण तक हर चीज़ के लिए किया जाता है। DataFrames को मैनिपुलेट करना सीखने के लिए—जैसे वास्तविक दुनिया के डेटासेट्स को विश्लेषण हेतु निकालना, फ़िल्टर करना और ट्रांसफ़ॉर्म करना—हमारा कोर्स Data Manipulation with pandas देखें।

Satyam Tripathi

लेखक

Satyam Tripathi

विषय