पांडा के अजगर का उपयोग करते समय स्ट्रिंग के सभी शब्दों को छोड़कर विशिष्ट शब्दों को बदलें [डुप्लिकेट]
मैं एक पांडा डेटाफ़्रेम में एक नया कॉलम बना रहा हूं और मैं ऑपरेटिंग सिस्टम के लिए संक्षिप्त नाम दर्ज करना चाहता हूं। मैं 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' को छोड़ता है
किसी को भी कृपया मदद कर सकते हैं?
धन्यवाद
जवाब
प्रतिस्थापित करने के बजाय, आप किसी एक विकल्प को एक नए कॉलम में निकाल सकते हैं।
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
@ चौथी चिड़िया मैंने इस कोड का उपयोग करके निम्नलिखित कोड का उपयोग करके इसे हल किया:
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 के आसपास के शब्दों को सटीक शब्दों को पकड़ने के लिए आवश्यक था