पांडा के अजगर का उपयोग करते समय स्ट्रिंग के सभी शब्दों को छोड़कर विशिष्ट शब्दों को बदलें [डुप्लिकेट]

Dec 03 2020

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

उदाहरण के लिए मेरे पास डेटा है जो इस तरह दिखता है:

Android 10kdsh
Chrome OS
Linux ddk2
OS X 10.
Windows 7
iOS c

और मैं इसे इस तरह देखना चाहता हूं:

Android 
Chrome
Linux
OS X
Windows
iOS

मैंने निम्नानुसार कोड की कोशिश की:

def short_OS(webchat):

    webchat["OS"] = webchat["Operating System"].str.replace(('[^(Android|^OS X|^Chrome|^Linux|^Windows|^iOS)]'),"", regex = True)

    return webchat

लेकिन यह कुछ पात्रों को छोड़ता है:

Androiddsh
ChromeOS
Linuxdd
OS X
Windows
iOS

स्पष्ट रूप से उपरोक्त केवल उदाहरण हैं, लेकिन कुछ पात्रों के बारे में सिद्धांत जैसा कि वे शब्दों में हैं, वैसे ही हैं।

मुझे ध्यान देना चाहिए कि \ b के साथ शब्दों को तैयार करने से परिणाम नहीं बदले। और अगर मैं स्ट्रिंग के अंत के लिए $ का उपयोग करता हूं, तो 'एंड्रॉइड' के उदाहरण में यह अभी भी उसी लाइन पर '10kdsh' को छोड़ता है

किसी को भी कृपया मदद कर सकते हैं?

धन्यवाद

जवाब

1 Thefourthbird Dec 03 2020 at 22:24

प्रतिस्थापित करने के बजाय, आप किसी एक विकल्प को एक नए कॉलम में निकाल सकते हैं।

webchat = pd.DataFrame(data, columns=["Operating System"])
webchat["OS"] = webchat["Operating System"].str.extract((r"^(Android|Chrome|Linux|OS X|Windows|iOS)\b"))
print(webchat)

उत्पादन

  Operating System       OS
0   Android 10kdsh  Android
1        Chrome OS   Chrome
2       Linux ddk2    Linux
3         OS X 10.     OS X
4        Windows 7  Windows
5            iOS c      iOS
MizzH Dec 04 2020 at 05:15

@ चौथी चिड़िया मैंने इस कोड का उपयोग करके निम्नलिखित कोड का उपयोग करके इसे हल किया:

def short_OS(webchat):
 
    webchat["OS"] = webchat["Operating System"].str.extract(r"(\bAndroid\b|\bOS X\b|\bChrome\b|\bLinux\b|\bWindows\b|\biOS\b)")

    return webchat

/ b के आसपास के शब्दों को सटीक शब्दों को पकड़ने के लिए आवश्यक था