पांडा डेटा हेरफेर और विश्लेषण के लिए एक शक्तिशाली पायथन लाइब्रेरी है। एक सामान्य कार्य में विशिष्ट कॉलम पर लागू शर्तों के आधार पर एक DataFrame से पंक्तियों का चयन करना शामिल है। यह लेख किसी दिए गए मानदंड को पूरा करने वाली पंक्तियों के सूचकांकों को पुनः प्राप्त करने के तीन कुशल तरीकों का पता लगाता है।
विषय सूची
- बूलियन इंडेक्सिंग: एक सरल और कुशल तरीका
- लचीलेपन के लिए NumPy का
np.where()
का उपयोग करना - पठनीय जटिल क्वेरी के लिए पांडा का
query()
का उपयोग करना
बूलियन इंडेक्सिंग: एक सरल और कुशल तरीका
बूलियन इंडेक्सिंग सरल चयन मानदंडों के लिए एक संक्षिप्त और कुशल समाधान प्रदान करता है। यह सीधे पंक्तियों को फ़िल्टर करने के लिए किसी शर्त की सत्यता का उपयोग करता है।
आइए एक उदाहरण के साथ समझाते हैं:
import pandas as pd
data = {'col1': [1, 2, 3, 4, 5],
'col2': [6, 7, 8, 9, 10],
'col3': ['A', 'B', 'C', 'D', 'E']}
df = pd.DataFrame(data)
print(df)
# वे सूचकांक प्राप्त करें जहाँ 'col1' 2 से अधिक है
indices = df[df['col1'] > 2].index.tolist()
print(indices) # आउटपुट: [2, 3, 4]
यह कोड पहले एक बूलियन मास्क (df['col1'] > 2
) बनाता है, फिर इसका उपयोग DataFrame को फ़िल्टर करने के लिए करता है, और अंत में .index.tolist()
का उपयोग करके चयनित पंक्तियों के सूचकांकों को निकालता है।
लचीलेपन के लिए NumPy का np.where()
का उपयोग करना
NumPy का np.where()
फ़ंक्शन एक अधिक बहुमुखी दृष्टिकोण प्रदान करता है, विशेष रूप से जटिल स्थितियों या एक साथ कई स्थितियों के लिए फायदेमंद है।
import numpy as np
indices = np.where(df['col1'] > 2)[0].tolist()
print(indices) # आउटपुट: [2, 3, 4]
np.where(df['col1'] > 2)
एक टुपल देता है; पहले तत्व में शर्त को पूरा करने वाले सूचकांकों की एक सरणी होती है। हम [0]
का उपयोग करके इस तत्व तक पहुँचते हैं और इसे .tolist()
का उपयोग करके एक सूची में बदल देते हैं।
पठनीय जटिल क्वेरी के लिए पांडा का query()
का उपयोग करना
query()
विधि पठनीयता को बढ़ाती है, खासकर जटिल स्थितियों के लिए। यह स्ट्रिंग अभिव्यक्तियों का उपयोग करके मानदंड निर्दिष्ट करने की अनुमति देता है।
indices = df.query('col1 > 2').index.tolist()
print(indices) # आउटपुट: [2, 3, 4]
#एक से अधिक शर्तों वाला उदाहरण
indices = df.query('col1 > 2 and col2 < 9').index.tolist()
print(indices) # आउटपुट: [2]
query()
विधि सीधे शर्त के स्ट्रिंग प्रतिनिधित्व को स्वीकार करती है, जिससे पठनीयता में काफी सुधार होता है, खासकर कई या जटिल स्थितियों के साथ।
निष्कर्ष: प्रत्येक विधि किसी शर्त के आधार पर प्रभावी ढंग से सूचकांक पुनः प्राप्त करती है। सरल स्थितियों के लिए बूलियन इंडेक्सिंग सबसे अच्छा है; np.where()
अधिक जटिल परिदृश्यों को संभालता है; और उन्नत फ़िल्टरिंग के लिए query()
पठनीयता में उत्कृष्टता प्राप्त करता है।