Data Science

पांडा डेटाफ्रेम के एकाधिक कॉलम पर प्रभावी ढंग से फलन लागू करना

Spread the love

पांडा डेटा हेरफेर और विश्लेषण के लिए एक शक्तिशाली पायथन लाइब्रेरी है। एक बारंबार आवश्यकता कई DataFrame कॉलम में एक ही फ़ंक्शन लागू करना है। यह लेख इसे पूरा करने के कुशल तरीकों को रेखांकित करता है, बार-बार कॉलम-दर-कॉलम प्रसंस्करण से बचता है।

विषयसूची

वेक्टरित संचालन: सबसे तेज़ तरीका

संख्यात्मक संचालन के लिए, पांडा के वेक्टरित फ़ंक्शन बेहतर गति प्रदान करते हैं। वे NumPy के अनुकूलित सरणी प्रसंस्करण का लाभ उठाते हुए, सीधे पूरे कॉलम पर काम करते हैं। बड़े डेटासेट के लिए यह पुनरावृति विधियों की तुलना में काफी तेज है।


import pandas as pd

data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)

# कॉलम A और B को तत्व-वार जोड़ें
df['Sum_AB'] = df['A'] + df['B']
print(df)

# कॉलम A में मानों का वर्ग करें
df['A_Squared'] = df['A']**2
print(df)

apply() विधि: पंक्ति-वार संचालन

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


# कॉलम A और B के गुणनफल की गणना करने के लिए फ़ंक्शन
def multiply_ab(row):
  return row['A'] * row['B']

df['Product_AB'] = df.apply(multiply_ab, axis=1)
print(df)

applymap(): तत्व-वार रूपांतरण

applymap() एक DataFrame (या चयनित कॉलम) के प्रत्येक व्यक्तिगत तत्व पर एक फ़ंक्शन लागू करता है। यह सरल, तत्व-वार परिवर्तनों के लिए कुशल है।


# कॉलम 'A' और 'C' में तत्वों पर एक कस्टम फ़ंक्शन लागू करें
def custom_function(x):
    if x > 5:
        return x * 2
    else:
        return x

df[['A', 'C']] = df[['A', 'C']].applymap(custom_function)
print(df)

संक्षिप्तता के लिए लैम्ब्डा फ़ंक्शन

लैम्ब्डा फ़ंक्शन इनलाइन सरल, अनाम फ़ंक्शन को परिभाषित करने का एक संक्षिप्त तरीका प्रदान करते हैं, apply() या अन्य विधियों के साथ उपयोग किए जाने पर पठनीयता को बढ़ाते हैं।


# संक्षिप्तता के लिए apply के साथ लैम्ब्डा फ़ंक्शन का उपयोग करना
df['Sum_AB_Lambda'] = df.apply(lambda row: row['A'] + row['B'], axis=1)
print(df)

विभिन्न डेटा प्रकारों को संभालना

कई कॉलम के साथ काम करते समय, डेटा प्रकारों में विविधताओं की आशा करें। मज़बूत फ़ंक्शनों में संभावित प्रकार के बेमेल का प्रबंधन करने और अप्रत्याशित विफलताओं को रोकने के लिए त्रुटि हैंडलिंग (जैसे, try-except ब्लॉक) शामिल होनी चाहिए।

सही विधि चुनना

इष्टतम दृष्टिकोण आपके फ़ंक्शन की जटिलता और डेटासेट के आकार पर निर्भर करता है:

  • वेक्टरित संचालन: कई कॉलम पर सरल संख्यात्मक संचालन के लिए सबसे तेज़।
  • applymap(): कई कॉलम में व्यक्तिगत कोशिकाओं पर तत्व-वार संचालन के लिए कुशल।
  • apply() (axis=1 या axis=0 के साथ): कई कॉलम तक पहुँच की आवश्यकता वाले पंक्ति-वार या स्तंभ-वार संचालन के लिए लचीला। विशाल DataFrames के लिए धीमा हो सकता है।
  • लैम्ब्डा फ़ंक्शन: apply() या अन्य विधियों के भीतर सरल फ़ंक्शनों के लिए कोड पठनीयता को बढ़ाएँ।

इष्टतम प्रदर्शन के लिए जब भी संभव हो वेक्टरित संचालन को प्राथमिकता दें। इन तकनीकों को समझने से पांडा में कुशल डेटा हेरफेर करने में सशक्त बनाया जाता है।

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

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