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