pandas 0.23 - Series.str.replace()

pandas.Series.str.replace




pandas

pandas.Series.str.replace

Series.str.replace(pat, repl, n=-1, case=None, flags=0, regex=True) [source]

कुछ अन्य स्ट्रिंग के साथ श्रृंखला / सूचकांक में पैटर्न / रेगेक्स की घटनाओं को बदलें। str.replace() या re.sub() बराबर।

पैरामीटर:

पैट : स्ट्रिंग या संकलित रेगेक्स

स्ट्रिंग एक चरित्र अनुक्रम या नियमित अभिव्यक्ति हो सकती है।

संस्करण 0.20.0 में नया: pat एक संकलित रेगेक्स को भी स्वीकार करता है।

उत्तर : स्ट्रिंग या कॉल करने योग्य

रिप्लेसमेंट स्ट्रिंग या एक कॉल करने योग्य। कॉल करने योग्य को रेगेक्स मैच ऑब्जेक्ट पारित किया जाता है और इसका उपयोग करने के लिए एक प्रतिस्थापन स्ट्रिंग वापस करना होगा। देखें re.sub()

संस्करण 0.20.0 में नया: उत्तर भी एक कॉल करने योग्य स्वीकार करता है।

n : int, डिफ़ॉल्ट -1 (सभी)

शुरू से बनाने के लिए प्रतिस्थापन की संख्या

मामला : बूलियन, डिफ़ॉल्ट कोई नहीं

  • यदि सही है, तो मामला संवेदनशील (यदि pat एक स्ट्रिंग है)
  • असंवेदनशील मामले के लिए गलत पर सेट करें
  • यदि सेट संकलित रेगेक्स है, तो सेट नहीं किया जा सकता है

झंडे : int, डिफ़ॉल्ट 0 (कोई झंडे नहीं)

  • पुनः मॉड्यूल के झंडे, जैसे re.IGNORECASE
  • यदि सेट संकलित रेगेक्स है, तो सेट नहीं किया जा सकता है

रेगेक्स : बूलियन, डिफॉल्ट ट्रू

  • यदि सही है, तो माना जाता है कि पारित पैटर्न एक नियमित अभिव्यक्ति है।
  • यदि गलत है, तो पैटर्न को शाब्दिक स्ट्रिंग के रूप में मानता है
  • pat एक संकलित रेगेक्स है या उत्तर एक कॉल करने योग्य है, तो गलत पर सेट नहीं किया जा सकता है।

संस्करण में नया 0.23.0।

यह दिखाता है:
replaced : Series/Index of objects
जन्म देती है:

ValueError

  • यदि regex गलत है और उत्तर repl करने योग्य है या pat एक संकलित रेगेक्स है
  • अगर pat एक संकलित रेगेक्स और case या flags सेट है

टिप्पणियाँ

जब pat एक संकलित रेगेक्स है, तो सभी ध्वज को संकलित रेगेक्स में शामिल किया जाना चाहिए। case , flags , या regex=False संकलित रेगेक्स के साथ regex=False होने पर त्रुटि उत्पन्न होगी।

उदाहरण

जब pat एक स्ट्रिंग है और regex True (डिफ़ॉल्ट) है, दिए गए pat को regex के रूप में संकलित किया जाता है। जब उत्तर स्ट्रिंग होता है, तो यह regex पैटर्न को re.sub() साथ मेल खाता है। श्रृंखला में NaN मान इस प्रकार हैं:

>>> pd.Series(['foo', 'fuz', np.nan]).str.replace('f.', 'ba', regex=True)
0    bao
1    baz
2    NaN
dtype: object

जब pat एक string है और regex False है, हर pat को str.replace() साथ str.replace() साथ बदल दिया जाता है:

>>> pd.Series(['f.o', 'fuz', np.nan]).str.replace('f.', 'ba', regex=False)
0    bao
1    fuz
2    NaN
dtype: object

जब उत्तर को कॉल करने योग्य होता है, तो उसे re.sub() का उपयोग करके हर pat पर बुलाया जाता है। कॉल करने योग्य को एक स्थिति तर्क (एक रेगेक्स ऑब्जेक्ट) की अपेक्षा करनी चाहिए और एक स्ट्रिंग लौटना चाहिए।

विचार प्राप्त करने के लिए:

>>> pd.Series(['foo', 'fuz', np.nan]).str.replace('f', repr)
0    <_sre.SRE_Match object; span=(0, 1), match='f'>oo
1    <_sre.SRE_Match object; span=(0, 1), match='f'>uz
2                                                  NaN
dtype: object

हर छोटे अक्षर का उलटा शब्द लिखें:

>>> repl = lambda m: m.group(0)[::-1]
>>> pd.Series(['foo 123', 'bar baz', np.nan]).str.replace(r'[a-z]+', repl)
0    oof 123
1    rab zab
2        NaN
dtype: object

रेगेक्स समूहों (दूसरे समूह और स्वैप मामले को निकालें) का उपयोग करना:

>>> pat = r"(?P<one>\w+) (?P<two>\w+) (?P<three>\w+)"
>>> repl = lambda m: m.group('two').swapcase()
>>> pd.Series(['One Two Three', 'Foo Bar Baz']).str.replace(pat, repl)
0    tWO
1    bAR
dtype: object

झंडे के साथ संकलित रेगेक्स का उपयोग करना

>>> regex_pat = re.compile(r'FUZ', flags=re.IGNORECASE)
>>> pd.Series(['foo', 'fuz', np.nan]).str.replace(regex_pat, 'bar')
0    foo
1    bar
2    NaN
dtype: object