Data Analysis

पांडास में शर्तों के आधार पर कुशलतापूर्वक DataFrame कॉलम बनाना

Spread the love

पांडा डेटा हेरफेर और विश्लेषण के लिए एक शक्तिशाली पायथन लाइब्रेरी है। शर्तों के आधार पर एक DataFrame में नए कॉलम बनाना एक सामान्य कार्य है। यह लेख इसे प्राप्त करने के कई कुशल तरीकों का पता लगाता है, स्पष्टता और प्रदर्शन दोनों को प्राथमिकता देता है। हम सूची समझ, NumPy विधियों, pandas.DataFrame.apply और pandas.Series.map() को कवर करेंगे, उनकी ताकत और कमजोरियों की तुलना करेंगे।

विषयवस्तु की तालिका

सशर्त कॉलम निर्माण के लिए सूची समझ

सूची समझ सरल शर्तों के आधार पर नए कॉलम बनाने के लिए एक संक्षिप्त सिंटैक्स प्रदान करती है। वे छोटे DataFrame के लिए विशेष रूप से कुशल हैं। हालाँकि, बड़े डेटासेट के साथ उनका प्रदर्शन कम हो सकता है।


import pandas as pd

data = {'Sales': [100, 200, 150, 250, 300],
        'Region': ['North', 'South', 'North', 'East', 'West']}
df = pd.DataFrame(data)

df['SalesCategory'] = ['High' if sales > 200 else 'Low' for sales in df['Sales']]
print(df)

इष्टतम सशर्त तर्क के लिए NumPy का लाभ उठाना

NumPy अत्यधिक अनुकूलित वेक्टरित संचालन प्रदान करता है, प्रदर्शन में महत्वपूर्ण सुधार करता है, खासकर बड़े DataFrame के लिए। np.where() सशर्त असाइनमेंट के लिए विशेष रूप से उपयोगी है।


import numpy as np

df['SalesCategory_np'] = np.where(df['Sales'] > 200, 'High', 'Low')
print(df)

लचीले सशर्त तर्क के लिए pandas.DataFrame.apply() का उपयोग करना

apply() विधि अधिक जटिल सशर्त तर्क के लिए लचीलापन प्रदान करती है, फ़ंक्शंस को पंक्ति-वार (axis=1) या स्तंभ-वार (axis=0) लागू करती है। हालाँकि, यह बहुत बड़े DataFrame के लिए NumPy से धीमा हो सकता है, खासकर कम्प्यूटेशनल रूप से गहन कार्यों के साथ।


def categorize_sales(row):
    if row['Region'] == 'North' and row['Sales'] > 150:
        return 'High North'
    elif row['Sales'] > 200:
        return 'High'
    else:
        return 'Low'

df['SalesCategory_apply'] = df.apply(categorize_sales, axis=1)
print(df)

pandas.Series.map() के साथ कुशल मान मैपिंग

map() विधि एक मान सेट से दूसरे में मैपिंग लागू करने के लिए आदर्श है, कुशलतापूर्वक श्रेणीबद्ध कॉलम बनाता है।


region_mapping = {'North': 'Northern Region', 'South': 'Southern Region', 'East': 'Eastern Region', 'West': 'Western Region'}
df['RegionMapped'] = df['Region'].map(region_mapping)
print(df)

प्रदर्शन तुलना और सिफारिशें

इष्टतम विधि स्थिति जटिलता, DataFrame आकार और प्रदर्शन आवश्यकताओं जैसे कारकों पर निर्भर करती है। सरल शर्तों और छोटे डेटासेट के लिए, सूची समझ संक्षिप्त हैं। बड़े डेटासेट और अधिक जटिल तर्क के लिए NumPy के वेक्टरित संचालन महत्वपूर्ण प्रदर्शन लाभ प्रदान करते हैं। apply() जटिल पंक्ति-वार या स्तंभ-वार संचालन के लिए लचीलापन प्रदान करता है, जबकि map() मान मैपिंग में उत्कृष्टता प्राप्त करता है। सबसे कुशल दृष्टिकोण निर्धारित करने के लिए आपके विशिष्ट डेटा पर बेंचमार्किंग की सिफारिश की जाती है।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *