बूलियन कॉलम का उपयोग करके पांडा डेटाफ़्रेम को कैसे फ़िल्टर करें
आप बूलियन कॉलम मानों के आधार पर पांडा डेटाफ़्रेम में पंक्तियों को फ़िल्टर करने के लिए निम्नलिखित विधियों का उपयोग कर सकते हैं:
विधि 1: बूलियन कॉलम के आधार पर डेटाफ़्रेम को फ़िल्टर करें
#filter for rows where value in 'my_column' is True df. loc [df. my_column ]
विधि 2: एकाधिक बूलियन कॉलम के आधार पर डेटाफ़्रेम को फ़िल्टर करें
#filter for rows where value in 'column1' or 'column2' is True df. loc [df. column1 | df. column2 ]
निम्नलिखित उदाहरण दिखाते हैं कि निम्नलिखित पांडा डेटाफ़्रेम के साथ व्यवहार में प्रत्येक विधि का उपयोग कैसे करें:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G'], ' points ': [18,20, 25, 40, 34, 32, 19], ' all_star ': [True, False, True, True, True, False, False], ' starter ': [False, True, True, True, False, False, False]}) #view DataFrame print (df) team points all_star starter 0 A 18 True False 1 B 20 False True 2 C 25 True True 3 D 40 True True 4 E 34 True False 5 F 32 False False 6 G 19 False False
उदाहरण 1: बूलियन कॉलम के आधार पर डेटाफ़्रेम को फ़िल्टर करें
हम पांडा डेटाफ़्रेम को केवल उन पंक्तियों को शामिल करने के लिए फ़िल्टर करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं जहां all_star कॉलम में मान सत्य है:
#filter for rows where 'all_star' is True df. loc [df. all_star ] team points all_star starter 0 A 18 True False 2 C 25 True True 3 D 40 True True 4 E 34 True False
ध्यान दें कि डेटाफ़्रेम को केवल उन पंक्तियों को शामिल करने के लिए फ़िल्टर किया गया है जिनका ऑल_स्टार कॉलम में मान सत्य है।
यदि आप इसके बजाय उन पंक्तियों को फ़िल्टर करना चाहते हैं जहां all_star गलत है, तो बस कॉलम नाम के सामने एक टिल्ड ( ~ ) टाइप करें:
#filter for rows where 'all_star' is False df. loc [ ~ df. all_star ] team points all_star starter 1 B 20 False True 5 F 32 False False 6 G 19 False False
डेटाफ़्रेम को अब केवल उन पंक्तियों को शामिल करने के लिए फ़िल्टर किया गया है जिनका ऑल_स्टार कॉलम में मान गलत है।
उदाहरण 2: एकाधिक बूलियन कॉलम के आधार पर डेटाफ़्रेम को फ़िल्टर करें
हम पांडा डेटाफ़्रेम को केवल उन पंक्तियों को शामिल करने के लिए फ़िल्टर करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं जहां ऑल_स्टार कॉलम या स्टार्ट कॉलम का मान सत्य है:
#filter for rows where 'all_star' or 'starter' is True df. loc [df. all_star | df. starter ] team points all_star starter 0 A 18 True False 1 B 20 False True 2 C 25 True True 3 D 40 True True 4 E 34 True False
ध्यान दें कि डेटाफ़्रेम को केवल उन पंक्तियों को शामिल करने के लिए फ़िल्टर किया गया है जिनका ऑल_स्टार या स्टार्टर कॉलम में मान सत्य है।
यदि आप उन पंक्तियों को फ़िल्टर करना चाहते हैं जिनका ऑल_स्टार और स्टार्टर कॉलम में मान सत्य है, तो आप | के बजाय & ऑपरेटर का उपयोग कर सकते हैं। ऑपरेटर:
#filter for rows where 'all_star' and 'starter' is True df. loc [df. all_star & df. starter ] team points all_star starter 2 C 25 True True 3 D 40 True True
अब डेटाफ़्रेम को केवल उन पंक्तियों को शामिल करने के लिए फ़िल्टर किया गया है जहां ऑल_स्टार और स्टार्टर कॉलम में मान सत्य है।
सम्बंधित: पंडों में लोक और इलोक के बीच अंतर
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि पांडा में अन्य सामान्य कार्य कैसे करें:
पांडा: बूलियन श्रृंखला का उपयोग करके डेटाफ़्रेम से पंक्तियों का चयन करें
पांडा: स्थिति के आधार पर बूलियन कॉलम कैसे बनाएं
पांडा: बूलियन मानों को पूर्णांक मानों में कैसे परिवर्तित करें