पांडा: दो स्तंभों के बीच स्ट्रिंग की तुलना कैसे करें


आप पांडा डेटाफ़्रेम में दो स्तंभों के बीच स्ट्रिंग की तुलना करने के लिए निम्नलिखित मूल वाक्यविन्यास का उपयोग कर सकते हैं:

 df[' col1 ']. str . strip (). str . lower () == df[' col2 ']. str . strip (). str . lower ()

str.strip() फ़ंक्शन प्रत्येक स्ट्रिंग से रिक्त स्थान हटाता है और str.lower() फ़ंक्शन तुलना करने से पहले प्रत्येक स्ट्रिंग को लोअरकेस में परिवर्तित करता है।

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

उदाहरण: पांडा में दो स्तंभों के बीच स्ट्रिंग की तुलना करें

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team1 ': ['Mavs', 'Hawks', 'Nets', 'Hornets', 'Lakers'],
                   ' team2 ': ['Mavs', 'Jazz', 'Nets', 'Hornets', 'LAKERS']})

#view DataFrame
print (df)

     team1 team2
0 Mavs Mavs 
1 Hawks Jazz
2 Nets Nets
3 Hornets Hornets 
4 Lakers LAKERS

ध्यान दें कि कुछ टीम के नामों में यादृच्छिक स्थानों पर रिक्त स्थान होते हैं और कुछ टीम के नाम बड़े अक्षरों में होते हैं।

मान लीजिए कि हम यह देखने के लिए प्रत्येक पंक्ति में स्ट्रिंग्स की तुलना करना चाहते हैं कि प्रत्येक पंक्ति में टीम के नाम बराबर हैं या नहीं।

यदि हम स्ट्रिंग्स की तुलना करते समय केवल == प्रतीक का उपयोग करते हैं, तो पांडा केवल True लौटाएंगे यदि वे एक ही मामले में हैं और बिल्कुल उसी स्थिति में रिक्त स्थान हैं:

 #create new column that tests if strings in team columns are equal
df[' equal '] = df[' team1 '] == df[' team2 ']

#view updated DataFrame
print (df)

     team1 team2 equal
0 Mavs Mavs False
1 Hawks Jazz False
2 Nets Nets True
3 Hornets Hornets False
4 Lakers LAKERS False

ध्यान दें कि केवल एक पंक्ति True लौटाती है, क्योंकि यह एकमात्र पंक्ति है जिसमें स्ट्रिंग में समान केस और रिक्त स्थान स्थितियाँ होती हैं।

हालाँकि, हम प्रत्येक स्ट्रिंग से रिक्त स्थान हटाने के लिए str.strip() फ़ंक्शन का उपयोग कर सकते हैं और तुलना करने से पहले प्रत्येक स्ट्रिंग को लोअरकेस में बदलने के लिए str.lower() फ़ंक्शन का उपयोग कर सकते हैं:

 #remove whitespace and convert each string to lowercase, then compare strings
df[' equal '] = df[' team1 ']. str . strip (). str . lower () == df[' team2 ']. str . strip (). str . lower ()

#view updated DataFrame
print (df)

     team1 team2 equal
0 Mavs Mavs True
1 Hawks Jazz False
2 Nets Nets True
3 Hornets Hornets True
4 Lakers LAKERS True

अब प्रत्येक पंक्ति सत्य लौटाती है, उस पंक्ति को छोड़कर जहां टीम के नाम “हॉक्स” और “जैज़” हैं, क्योंकि रिक्त स्थान को हटाने और स्ट्रिंग्स को लोअरकेस में परिवर्तित करने के बाद भी, ये स्ट्रिंग्स समान नहीं हैं।

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

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

पांडा: स्ट्रिंग्स से विशिष्ट वर्णों को कैसे हटाएं
पांडा: जांचें कि क्या स्ट्रिंग में एकाधिक सबस्ट्रिंग हैं
पांडा: खाली स्ट्रिंग्स को NaN से कैसे बदलें

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

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