मेरे पास नीचे के रूप में डेटाफ्रेम है, मुझे मूल्यों के सेट के लिए स्ट्रिंग में केवल पहली घटना खोजने की आवश्यकता है।
मैं रेगेक्स और डिक्शनरी के साथ "ढूंढें" फ़ंक्शन का उपयोग करने में असमर्थ हूं। और अगर मैं "ढूंढें" फ़ंक्शन का उपयोग करता हूं, तो यह निश्चित रूप से सभी घटनाओं को ढूंढ रहा है जो मुझे चाहिए नहीं।
Text
51000/1-PLASTIC 150 Prange
51034/2-RUBBER KL 100 AA
51556/3-PAPER BD+CM 1 BOXT2
52345/1-FLOW IJ 10place 500 plastic
54975/1-DIVIDER PQR 100 BC
54975/1-SCALE DEF 555 AB Apple
54975/1-PLASTIC ABC 4.6 BB plastic
कोड:
import re
L = ['PLASTIC','RUBBER','PAPER','FLOW']
pat = '|'.join(r"\b{}\b".format(x) for x in L)
df['Result'] = df['Text'].str.find(pat, flags=re.I).str.join(' ')
print(df)
df = df.replace(r'^\s*$', np.nan, regex=True)
df = df.replace(np.nan, "Not known", regex=True)
#df['Result'] = df['Result'].str.lower()
अपेक्षित परिणाम:
Text Result
51000/1-PLASTIC 150 Prange Plastic
51034/2-RUBBER KL 100 AA Rubber
51556/3-PAPER BD+CM 1 BOXT2 Paper
52345/1-FLOW IJ 10place 500 plastic Flow
54975/1-DIVIDER PQR 100 BC Not known
54975/1-SCALE DEF 555 AB Apple Not KNown
54975/1-PLASTIC ABC 4.6 BB plastic Plastic
त्रुटि:
लेखन त्रुटि: ढूँढें () एक अप्रत्याशित खोजशब्द तर्क 'झंडे' मिला
1 उत्तर
import re
L = ['PLASTIC','RUBBER','PAPER','FLOW']
pat = '|'.join(r"\b{}\b".format(x) for x in L)
df['Result'] = df['Text'].str.findall(pat, flags=re.I).str[0]
या Series.str.extract
< का उपयोग करें /ए>:
df['Result'] = df['Text'].str.extract('(' + pat + ')', flags=re.I)
फिर लापता मानों को Not known
में बदलें:
df['Result'] = df['Result'].fillna("Not known")
अंतिम यदि आवश्यक हो तो Series का उपयोग करें .str.capitalize
:
df['Result'] = df['Result'].str.capitalize()
print (df)
Text Result
0 51000/1-PLASTIC 150 Prange Plastic
1 51034/2-RUBBER KL 100 AA Rubber
2 51556/3-PAPER BD+CM 1 BOXT2 Paper
3 52345/1-FLOW IJ 10place 500 plastic Flow
4 54975/1-DIVIDER PQR 100 BC Not known
5 54975/1-SCALE DEF 555 AB Apple Not known
6 54975/1-PLASTIC ABC 4.6 BB plastic Plastic
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।