पंडों में एंटी-जॉइन कैसे करें
एक एंटी-जॉइन आपको एक डेटासेट में सभी पंक्तियों को वापस करने की अनुमति देता है जिनके पास किसी अन्य डेटासेट में मेल खाने वाले मान नहीं हैं।
आप दो पांडा डेटाफ़्रेम के बीच एंटी-जॉइन करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:
outer = df1. merge (df2, how=' outer ', indicator= True ) anti_join = outer[(outer._merge==' left_only ')]. drop (' _merge ', axis= 1 )
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस वाक्यविन्यास का उपयोग कैसे करें।
उदाहरण: पंडों में एंटी-जॉइन प्रदर्शन करना
आइए मान लें कि हमारे पास निम्नलिखित दो पांडा डेटाफ़्रेम हैं:
import pandas as pd
#create first DataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E'],
' points ': [18, 22, 19, 14, 30]})
print (df1)
team points
0 to 18
1 B 22
2 C 19
3 D 14
4 E 30
#create second DataFrame
df2 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'F', 'G'],
' points ': [18, 22, 19, 22, 29]})
print (df2)
team points
0 to 18
1 B 22
2 C 19
3 F 22
4 G 29
हम पहले डेटाफ़्रेम से उन सभी पंक्तियों को वापस करने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं जिनके पास दूसरे डेटाफ़्रेम में मेल खाने वाली टीम नहीं है:
#perform outer join outer = df1. merge (df2, how=' outer ', indicator= True ) #perform anti-join anti_join = outer[(outer._merge==' left_only ')]. drop (' _merge ', axis= 1 ) #view results print (anti_join) team points 3 D 14 4 E 30
हम देख सकते हैं कि पहले डेटाफ़्रेम से बिल्कुल दो टीमें हैं जिनके पास दूसरे डेटाफ़्रेम में मेल खाने वाली टीम का नाम नहीं है।
एंटी-जॉइन ने अपेक्षा के अनुरूप काम किया।
अंतिम परिणाम एक डेटाफ़्रेम है जिसमें केवल वे पंक्तियाँ शामिल हैं जहाँ टीम का नाम पहले डेटाफ़्रेम से संबंधित है, लेकिन दूसरे डेटाफ़्रेम से नहीं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि पांडा में अन्य सामान्य कार्य कैसे करें:
पंडों में इनर जॉइन कैसे करें
पंडों में लेफ्ट जॉइन कैसे करें
पंडों में क्रॉस जॉइन कैसे करें