मेरे पास नीचे के रूप में डेटाफ्रेम है, मुझे मूल्यों के सेट के लिए स्ट्रिंग में केवल पहली घटना खोजने की आवश्यकता है।

मैं रेगेक्स और डिक्शनरी के साथ "ढूंढें" फ़ंक्शन का उपयोग करने में असमर्थ हूं। और अगर मैं "ढूंढें" फ़ंक्शन का उपयोग करता हूं, तो यह निश्चित रूप से सभी घटनाओं को ढूंढ रहा है जो मुझे चाहिए नहीं।

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
sanjana jha 23 सितंबर 2019, 10:01

1 उत्तर

सबसे बढ़िया उत्तर