पांडा डेटा हेरफेर और विश्लेषण के लिए एक शक्तिशाली पायथन लाइब्रेरी है। कॉलम मानों के आधार पर DataFrame पंक्तियों को फ़िल्टर करना डेटा प्रोसेसिंग में एक मौलिक कार्य है। यह लेख सरल से जटिल परिदृश्यों को कवर करते हुए, पांडा DataFrames को कुशलतापूर्वक फ़िल्टर करने के विभिन्न तकनीकों का पता लगाता है।
विषयसूची
- बेसिक फ़िल्टरिंग: सिंगल कॉलम, सिंगल कंडीशन
- निषेध: ऐसी पंक्तियों का चयन करना जो किसी शर्त से मेल नहीं खाती हैं
- संख्यात्मक तुलनाएँ: ग्रेटर दैन, लेस दैन, आदि।
- शर्तों का संयोजन: AND और OR ऑपरेशन
- एडवांस्ड फ़िल्टरिंग: मल्टीपल कॉलम और कॉम्प्लेक्स लॉजिक
isin()
के साथ कुशल फ़िल्टरिंग
बेसिक फ़िल्टरिंग: सिंगल कॉलम, सिंगल कंडीशन
फ़िल्टरिंग का सबसे सरल रूप उन पंक्तियों का चयन करना है जहाँ एक विशिष्ट कॉलम एक विशेष मान से मेल खाता है। यह बूलियन इंडेक्सिंग का उपयोग करके प्राप्त किया जाता है।
import pandas as pd
# सैंपल DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 22, 28],
'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
# ऐसी पंक्तियों का चयन करें जहाँ City 'London' है
london_residents = df[df['City'] == 'London']
print(london_residents)
यह कोड एक बूलियन मास्क (df['City'] == 'London'
) बनाता है जो True
है जहाँ ‘City’ कॉलम ‘London’ है और अन्यथा False
है। इस मास्क का उपयोग DataFrame को इंडेक्स करने के लिए किया जाता है, केवल उन पंक्तियों का चयन करता है जहाँ मास्क True
है।
निषेध: ऐसी पंक्तियों का चयन करना जो किसी शर्त से मेल नहीं खाती हैं
ऐसी पंक्तियों का चयन करने के लिए जहाँ किसी कॉलम में एक विशिष्ट मान नहीं है, !=
ऑपरेटर का उपयोग करके बूलियन स्थिति का निषेध करें।
# ऐसी पंक्तियों का चयन करें जहाँ City 'London' नहीं है
not_london_residents = df[df['City'] != 'London']
print(not_london_residents)
संख्यात्मक तुलनाएँ: ग्रेटर दैन, लेस दैन, आदि।
संख्यात्मक कॉलम के लिए, मान श्रेणियों के आधार पर फ़िल्टर करने के लिए तुलना ऑपरेटर (>
, <
, >=
, <=
) का उपयोग करें।
# ऐसी पंक्तियों का चयन करें जहाँ Age 25 से अधिक है
older_than_25 = df[df['Age'] > 25]
print(older_than_25)
# ऐसी पंक्तियों का चयन करें जहाँ Age 25 से कम या उसके बराबर है
younger_than_or_equal_to_25 = df[df['Age'] <= 25]
print(younger_than_or_equal_to_25)
शर्तों का संयोजन: AND और OR ऑपरेशन
तार्किक संचालकों &
(AND) और |
(OR) के साथ बूलियन स्थितियों को मिलाकर कई कॉलम मानों के आधार पर फ़िल्टर करें। प्रत्येक स्थिति को कोष्ठक में संलग्न करें।
# ऐसी पंक्तियों का चयन करें जहाँ City 'London' AND Age 25 से अधिक है
london_and_older = df[(df['City'] == 'London') & (df['Age'] > 25)]
print(london_and_older)
# ऐसी पंक्तियों का चयन करें जहाँ City 'London' OR Age 25 से अधिक है
london_or_older = df[(df['City'] == 'London') | (df['Age'] > 25)]
print(london_or_older)
एडवांस्ड फ़िल्टरिंग: मल्टीपल कॉलम और कॉम्प्लेक्स लॉजिक
जटिल परिदृश्यों के लिए, query()
विधि बेहतर पठनीयता प्रदान करती है।
# बेहतर पठनीयता के लिए query() का उपयोग करना
complex_filter = df.query('(City == "London" and Age > 25) or (Age < 23)')
print(complex_filter)
isin()
के साथ कुशल फ़िल्टरिंग
isin()
विधि यह जांचने का एक संक्षिप्त तरीका प्रदान करती है कि मान किसी सूची में शामिल हैं या नहीं।
cities_to_include = ['London', 'Paris']
filtered_df = df[df['City'].isin(cities_to_include)]
print(filtered_df)
इस लेख में पांडा में DataFrames को फ़िल्टर करने के विभिन्न तरीकों का प्रदर्शन किया गया है। सही विधि का चुनाव आपके फ़िल्टरिंग मानदंडों की जटिलता पर निर्भर करता है। सटीक परिणाम सुनिश्चित करने के लिए तार्किक संचालकों के साथ कोष्ठक का सही उपयोग करना याद रखें।