पांडा में फ़ज़ी मिलान कैसे करें (उदाहरण के साथ)


अक्सर आप अपूर्ण रूप से मेल खाने वाली स्ट्रिंग के आधार पर पांडा में दो डेटासेट को एक साथ जोड़ना चाह सकते हैं। इसे फ़ज़ी मिलान कहा जाता है.

पांडा में फ़ज़ी मिलान करने का सबसे आसान तरीका difflib पैकेज से get_close_matches() फ़ंक्शन का उपयोग करना है।

निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस फ़ंक्शन का उपयोग कैसे करें।

उदाहरण: पांडा में अस्पष्ट पत्राचार

मान लीजिए कि हमारे पास निम्नलिखित दो पांडा डेटाफ़्रेम हैं जिनमें विभिन्न बास्केटबॉल टीमों के बारे में जानकारी है:

 import pandas as pd

#create two DataFrames
df1 = pd. DataFrame ({' team ': ['Mavericks', 'Nets', 'Warriors', 'Heat', 'Lakers'],
                    ' points ': [99, 90, 104, 117, 100]})

df2 = pd. DataFrame ({' team ': ['Mavricks', 'Warrors', 'Heat', 'Netts', 'Lakes'],
                    ' assists ': [22, 29, 17, 40, 32]})

#view DataFrames
print (df1)

        team points
0 Mavericks 99
1 Nets 90
2 Warriors 104
3 Heat 117
4 Lakers 100

print (df2)

       team assists
0 Mavricks 22
1 Warriors 29
2 Heat 17
3 Netts 40
4 Lakes 32

अब मान लें कि हम टीम कॉलम के आधार पर दो डेटाफ़्रेम को मर्ज करना चाहते हैं।

चूंकि टीम के नाम दो डेटाफ़्रेम के बीच थोड़े भिन्न हैं, इसलिए हमें सबसे अधिक मेल खाने वाली टीम के नाम ढूंढने के लिए फ़ज़ी मिलान का उपयोग करने की आवश्यकता है।

ऐसा करने के लिए हम difflib पैकेज से get_close_matches() फ़ंक्शन का उपयोग कर सकते हैं:

 import difflib 

#create duplicate column to retain team name from df2
df2[' team_match '] = df2[' team ']

#convert team name in df2 to team name it most closely matches in df1
df2[' team '] = df2[' team ']. apply (lambda x: difflib. get_close_matches (x, df1[' team '])[ 0 ])

#merge the DataFrames into one
df3 = df1. merge (df2)

#view final DataFrame
print (df3)

        team points assists team_match
0 Mavericks 99 22 Mavricks
1 Nets 90 40 Nets
2 Warriors 104 29 Warriors
3 Heat 117 17 Heat
4 Lakers 100 32 Lakes

परिणाम एक डेटा फ़्रेम है जिसमें पहले डेटाफ़्रेम से पांच टीम नामों में से प्रत्येक के साथ-साथ वह टीम भी शामिल है जो दूसरे डेटाफ़्रेम से सबसे अधिक मेल खाती है।

टीम_मैच कॉलम दूसरे डेटाफ़्रेम से टीम का नाम प्रदर्शित करता है जो पहले डेटाफ़्रेम से टीम के नाम से सबसे अधिक मेल खाता है।

नोट #1 : डिफ़ॉल्ट रूप से, get_close_matches() तीन निकटतम मिलान लौटाता है। हालाँकि, लैम्ब्डा फ़ंक्शन के अंत में [0] का उपयोग करके, हम केवल निकटतम टीम नाम मिलान वापस करने में सक्षम थे।

नोट #2: आप get_close_matches() फ़ंक्शन के लिए संपूर्ण दस्तावेज़ यहां पा सकते हैं।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि पांडा में अन्य सामान्य कार्य कैसे करें:

पांडा डेटाफ़्रेम को अनेक स्तंभों में कैसे मर्ज करें
इंडेक्स पर दो पांडा डेटाफ़्रेम को कैसे मर्ज करें
पांडा जुड़ें या मर्ज करें: क्या अंतर है?

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *