"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > बूलियन इंडेक्सिंग का उपयोग करके पांडा डेटा ऑब्जेक्ट को कुशलतापूर्वक कैसे फ़िल्टर करें?

बूलियन इंडेक्सिंग का उपयोग करके पांडा डेटा ऑब्जेक्ट को कुशलतापूर्वक कैसे फ़िल्टर करें?

2024-11-01 को प्रकाशित
ब्राउज़ करें:738

How to Efficiently Filter Pandas Data Objects Using Boolean Indexing?

बूलियन इंडेक्सिंग का उपयोग करके पांडा डेटाफ्रेम और श्रृंखला की कुशल फ़िल्टरिंग

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

समाधान: बूलियन इंडेक्सिंग

पांडा बूलियन इंडेक्सिंग का उपयोग करके डेटा को फ़िल्टर करने के लिए एक अत्यधिक कुशल तंत्र प्रदान करता है। बूलियन इंडेक्सिंग में तार्किक स्थितियाँ बनाना और फिर इन शर्तों का उपयोग करके डेटा को अनुक्रमित करना शामिल है। निम्नलिखित उदाहरण पर विचार करें:

df.loc[df['col1'] >= 1, 'col1']

कोड की यह पंक्ति डेटाफ़्रेम डीएफ में सभी पंक्तियों का चयन करती है जहां 'col1' कॉलम में मान 1 से अधिक या उसके बराबर है। परिणाम एक नई श्रृंखला ऑब्जेक्ट है जिसमें फ़िल्टर किए गए मान शामिल हैं।
df.loc[df['col1'] >= 1, 'col1']

df[(df['col1'] >= 1) & (df['col1'] यह ऑपरेशन उन पंक्तियों को फ़िल्टर करता है जहां 'col1' 1 से बड़ा या उसके बराबर और 1 से कम या उसके बराबर दोनों है।
df[(df['col1'] >= 1) & (df['col1'] <= 1)]

कई फ़िल्टर लागू करने की प्रक्रिया को सरल बनाने के लिए, हम सहायक कार्य बना सकते हैं:

def b(x, col, op, n): वापसी ऑप(x[col], n) डीईएफ़ एफ(एक्स, *बी): रिटर्न x[(np.ological_and(*b))]

b फ़ंक्शन किसी दिए गए कॉलम और ऑपरेटर के लिए एक बूलियन स्थिति बनाता है, जबकि f एक डेटाफ़्रेम या श्रृंखला में कई बूलियन शर्तें लागू करता है।
def b(x, col, op, n): 
    return op(x[col], n)

def f(x, *b):
    return x[(np.logical_and(*b))]

इन कार्यों का उपयोग करने के लिए, हम फ़िल्टर मानदंड का एक शब्दकोश प्रदान कर सकते हैं:

फ़िल्टर = {'>=': [1], '
filters = {'>=': [1], 'यह कोड डेटाफ़्रेम डीएफ में 'col1' कॉलम पर फ़िल्टर लागू करता है और फ़िल्टर किए गए परिणामों के साथ एक नया डेटाफ़्रेम लौटाता है।
b1 = b(df, 'col1', ge, 1)
b2 = b(df, 'col1', le, 1)
filtered_df = f(df, b1, b2)

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

df.query('col1 यह लाइन हमारी तरह ही फ़िल्टरिंग प्राप्त करती है अधिक संक्षिप्त सिंटैक्स का उपयोग करते हुए पिछला उदाहरण।
df.query('col1 
विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729395079 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3