Pandas में Data Filtering कैसे करें?

Pandas में Data Filtering का मतलब होता है DataFrame से किसी शर्त (Condition) के आधार पर चुनिंदा डेटा को निकालना। जैसे: उम्र 30 से ज़्यादा हो, शहर दिल्ली हो, आदि।

✅ Step-by-Step उदाहरण के साथ

import pandas as pd

# एक सिंपल DataFrame बनाते हैं
data = {
'नाम': ['राज', 'सीमा', 'अजय', 'राहुल', 'सोनू'],
'उम्र': [25, 30, 28, 35, 22],
'शहर': ['दिल्ली', 'मुंबई', 'जयपुर', 'दिल्ली', 'पटना']
}

df = pd.DataFrame(data)

🔹 1. एक शर्त के आधार पर Filter

उदाहरण: उम्र 28 से ज़्यादा

filtered_df = df[df['उम्र'] > 28]
print(filtered_df)

📤 Output:

     नाम   उम्र     शहर
1 सीमा 30 मुंबई
3 राहुल 35 दिल्ली

🔹 2. दो Conditions के साथ (AND – &)

उदाहरण: उम्र 28 से ज़्यादा और शहर दिल्ली

filtered_df = df[(df['उम्र'] > 28) & (df['शहर'] == 'दिल्ली')]
print(filtered_df)

📤 Output:

    नाम   उम्र     शहर
3 राहुल 35 दिल्ली

🔹 3. दो Conditions (OR – |)

उदाहरण: शहर मुंबई या जयपुर हो

filtered_df = df[(df['शहर'] == 'मुंबई') | (df['शहर'] == 'जयपुर')]
print(filtered_df)

📤 Output:

     नाम   उम्र     शहर
1 सीमा 30 मुंबई
2 अजय 28 जयपुर

🔹 4. isin() Method से Multiple Values Filter करना

उदाहरण: शहर मुंबई या पटना हो

filtered_df = df[df['शहर'].isin(['मुंबई', 'पटना'])]
print(filtered_df)

🔹 5. str.contains() के साथ Text Filter करना

जब आप किसी Column (जैसे ‘नाम’ या ‘शहर’) में ऐसा डेटा खोजना चाहते हैं जो किसी खास शब्द को शामिल करता हो, तो आप str.contains() का इस्तेमाल कर सकते हैं।

🎯 उदाहरण: नाम में “राज” शब्द हो

import pandas as pd

data = {
'नाम': ['राज', 'सीमा', 'अजय', 'राजेश', 'राहुल'],
'शहर': ['दिल्ली', 'मुंबई', 'जयपुर', 'पटना', 'दिल्ली']
}

df = pd.DataFrame(data)

# 'नाम' कॉलम में "राज" शब्द वाले नामों को फ़िल्टर करें
filtered_df = df[df['नाम'].str.contains('राज')]
print(filtered_df)

📤 Output:

markdownCopyEdit     नाम     शहर
0    राज   दिल्ली
3  राजेश    पटना

🔸 टिप्स:

  • str.contains() case-sensitive होता है, लेकिन आप इसे ignore case करने के लिए case=False दे सकते हैं:
df[df['नाम'].str.contains('राज', case=False)]
  • अगर आपके डेटा में NaN values हो सकती हैं, तो error से बचने के लिए na=False जोड़ें:
df[df['नाम'].str.contains('राज', na=False)]

🔹6. Query Method से Filter

df_filtered = df.query("उम्र > 28")
print(df_filtered)

🔹7. किसी एक Column को Select करना (Single Column Selection)

import pandas as pd

data = {
'नाम': ['राज', 'सीमा', 'अजय', 'राहुल'],
'उम्र': [25, 30, 28, 35],
'शहर': ['दिल्ली', 'मुंबई', 'जयपुर', 'दिल्ली']
}

df = pd.DataFrame(data)

# सिर्फ 'नाम' कॉलम को select करें
print(df['नाम'])

📤 Output:

0     राज  
1 सीमा
2 अजय
3 राहुल
Name: नाम, dtype: object

🔹8. एक से ज्यादा Columns को Select करना (Multiple Columns Selection)

# 'नाम' और 'उम्र' कॉलम select करें
print(df[['नाम', 'उम्र']])

📤 Output:

     नाम   उम्र
0 राज 25
1 सीमा 30
2 अजय 28
3 राहुल 35

🔹9. Multiple Conditions के साथ Column Select करना

🎯 उदाहरण: उम्र > 28 और शहर = ‘दिल्ली’

filtered = df[(df['उम्र'] > 28) & (df['शहर'] == 'दिल्ली')]

# सिर्फ 'नाम' कॉलम दिखाएं
print(filtered['नाम'])

📤 Output:

3    राहुल
Name: नाम, dtype: object

🔹10. Filter करके Multiple Columns दिखाना

# उम्र > 28 AND शहर = 'दिल्ली', और 'नाम' व 'उम्र' कॉलम दिखाना
filtered = df[(df['उम्र'] > 28) & (df['शहर'] == 'दिल्ली')][['नाम', 'उम्र']]
print(filtered)

📤 Output:

     नाम   उम्र
3 राहुल 35

🔚 Note

  • df['column'] से एक कॉलम select होता है।
  • df[['col1', 'col2']] से multiple columns select होते हैं।
  • आप & (AND) और | (OR) के साथ complex conditions भी apply कर सकते हैं।

अगर आप चाहें तो मैं इसका PDF नोट्स या एक छोटा सा प्रोजेक्ट उदाहरण भी बना सकता हूँ। बताइए 😊

✅ निष्कर्ष:

Data filtering से आप अपने DataFrame में से सिर्फ वही डेटा निकाल सकते हैं जो आपके एनालिसिस या रिपोर्टिंग के लिए ज़रूरी है।

Leave a Comment