पांडा डेटा फ़िल्टर करने के लिए कई तरीके प्रदान करता है, जिसमें रीइंडेक्स(), अप्लाई(), और मैप() शामिल हैं। . हालाँकि, एकाधिक फ़िल्टर लागू करते समय, दक्षता एक चिंता का विषय बन जाती है।
अनुकूलित फ़िल्टरिंग के लिए, बूलियन इंडेक्सिंग का उपयोग करने पर विचार करें। पांडा और नम्पी दोनों बूलियन इंडेक्सिंग का समर्थन करते हैं, जो अनावश्यक प्रतियां बनाए बिना सीधे अंतर्निहित डेटा सरणी पर काम करता है।
यहां बूलियन इंडेक्सिंग का एक उदाहरण दिया गया है:
df.loc[df['col1'] >= 1, 'col1']
यह अभिव्यक्ति एक पांडा श्रृंखला लौटाती है जिसमें केवल वे पंक्तियाँ होती हैं जहाँ कॉलम 'col1' में मान 1 से अधिक या उसके बराबर हैं।
To एकाधिक फ़िल्टर लागू करें, तार्किक ऑपरेटरों '&' (AND) और '|' का उपयोग करें (या)। उदाहरण के लिए:
df[(df['col1'] >= 1) & (df['col1'] <=1 )]
यह अभिव्यक्ति एक डेटाफ़्रेम लौटाती है जिसमें केवल वे पंक्तियाँ होती हैं जहाँ कॉलम 'col1' में मान 1 और 1 के बीच होते हैं।
के लिए सहायक फ़ंक्शंस, उन फ़ंक्शंस को परिभाषित करने पर विचार करें जो डेटाफ़्रेम लेते हैं और एक बूलियन श्रृंखला लौटाते हैं, जिससे आप तार्किक ऑपरेटरों का उपयोग करके कई फ़िल्टर को संयोजित कर सकते हैं।
def b(x, col, op, n):
return op(x[col],n)
def f(x, *b):
return x[(np.logical_and(*b))]
पांडास 0.13 क्वेरी() विधि का परिचय देता है, जो जटिल फ़िल्टरिंग स्थितियों को व्यक्त करने का एक अधिक कुशल तरीका प्रदान करता है। मान्य कॉलम पहचानकर्ताओं को मानते हुए, निम्नलिखित कोड कई स्थितियों के आधार पर डेटाफ़्रेम डीएफ को फ़िल्टर करता है:
df.query('col1 <= 1 & 1 <= col1')
संक्षेप में, बूलियन इंडेक्सिंग अनावश्यक प्रतियां बनाए बिना पांडा डेटाफ़्रेम या श्रृंखला में एकाधिक फ़िल्टर लागू करने के लिए एक कुशल विधि प्रदान करता है। विस्तारित कार्यक्षमता के लिए एकाधिक फ़िल्टर को संयोजित करने के लिए तार्किक ऑपरेटरों और सहायक फ़ंक्शंस का उपयोग करें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3