pandas
स्ट्रिंग हेरफेर
खोज…
नियमित अभिव्यक्ति
# Extract strings with a specific regex
df= df['col_name'].str.extract[r'[Aa-Zz]']
# Replace strings within a regex
df['col_name'].str.replace('Replace this', 'With this')
रेगेक्स का उपयोग करके तारों का मिलान कैसे करें, इसकी जानकारी के लिए, नियमित एक्सप्रेशन के साथ आरंभ करना देखें।
कटा हुआ तार
एक श्रृंखला में तार का उपयोग कर कटा हुआ जा सकता है .str.slice()
कोष्ठक का उपयोग विधि, या अधिक आसानी से, ( .str[]
)।
In [1]: ser = pd.Series(['Lorem ipsum', 'dolor sit amet', 'consectetur adipiscing elit'])
In [2]: ser
Out[2]:
0 Lorem ipsum
1 dolor sit amet
2 consectetur adipiscing elit
dtype: object
प्रत्येक स्ट्रिंग का पहला वर्ण प्राप्त करें:
In [3]: ser.str[0]
Out[3]:
0 L
1 d
2 c
dtype: object
प्रत्येक स्ट्रिंग के पहले तीन वर्ण प्राप्त करें:
In [4]: ser.str[:3]
Out[4]:
0 Lor
1 dol
2 con
dtype: object
प्रत्येक स्ट्रिंग का अंतिम वर्ण प्राप्त करें:
In [5]: ser.str[-1]
Out[5]:
0 m
1 t
2 t
dtype: object
प्रत्येक स्ट्रिंग के अंतिम तीन वर्ण प्राप्त करें:
In [6]: ser.str[-3:]
Out[6]:
0 sum
1 met
2 lit
dtype: object
पहले 10 अक्षरों के हर दूसरे वर्ण को प्राप्त करें:
In [7]: ser.str[:10:2]
Out[7]:
0 Lrmis
1 dlrst
2 cnett
dtype: object
पंडों ने स्लाइस और सूचकांकों को संभालने के दौरान अजगर के समान व्यवहार किया। उदाहरण के लिए, यदि कोई सूचकांक सीमा से बाहर है, तो पायथन एक त्रुटि उठाता है:
In [8]:'Lorem ipsum'[12]
# IndexError: string index out of range
हालाँकि, यदि कोई स्लाइस श्रेणी के बाहर है, तो एक खाली स्ट्रिंग लौटा दी जाती है:
In [9]: 'Lorem ipsum'[12:15]
Out[9]: ''
जब कोई सूचकांक सीमा से बाहर हो, तो पंडों ने NaN लौटाया:
In [10]: ser.str[12]
Out[10]:
0 NaN
1 e
2 a
dtype: object
और यदि कोई स्लाइस सीमा से बाहर है तो एक खाली स्ट्रिंग लौटाता है:
In [11]: ser.str[12:15]
Out[11]:
0
1 et
2 adi
dtype: object
एक स्ट्रिंग की सामग्री के लिए जाँच
str.contains()
पद्धति का उपयोग यह जांचने के लिए किया जा सकता है कि किसी श्रृंखला के प्रत्येक स्ट्रिंग में पैटर्न होता है या नहीं। str.startswith()
और str.endswith()
विधियों का उपयोग अधिक विशिष्ट संस्करणों के रूप में भी किया जा सकता है।
In [1]: animals = pd.Series(['cat', 'dog', 'bear', 'cow', 'bird', 'owl', 'rabbit', 'snake'])
जाँचें कि क्या तार में 'a' अक्षर है:
In [2]: animals.str.contains('a')
Out[2]:
0 True
1 False
2 True
3 False
4 False
5 False
6 True
7 True
8 True
dtype: bool
इसका उपयोग बूलियन इंडेक्स के रूप में किया जा सकता है ताकि केवल '' a 'अक्षर वाले जानवरों को वापस किया जा सके:
In [3]: animals[animals.str.contains('a')]
Out[3]:
0 cat
2 bear
6 rabbit
7 snake
dtype: object
str.startswith
और str.endswith
विधियाँ समान रूप से काम करती हैं, लेकिन वे str.endswith
भी इनपुट के रूप में स्वीकार करती हैं।
In [4]: animals[animals.str.startswith(('b', 'c'))]
# Returns animals starting with 'b' or 'c'
Out[4]:
0 cat
2 bear
3 cow
4 bird
dtype: object
तार का पूंजीकरण
In [1]: ser = pd.Series(['lORem ipSuM', 'Dolor sit amet', 'Consectetur Adipiscing Elit'])
सभी को अपरकेस में बदलें:
In [2]: ser.str.upper()
Out[2]:
0 LOREM IPSUM
1 DOLOR SIT AMET
2 CONSECTETUR ADIPISCING ELIT
dtype: object
सभी छोटे अक्षर:
In [3]: ser.str.lower()
Out[3]:
0 lorem ipsum
1 dolor sit amet
2 consectetur adipiscing elit
dtype: object
पहले वर्ण को बड़ा करें और शेष को कम करें:
In [4]: ser.str.capitalize()
Out[4]:
0 Lorem ipsum
1 Dolor sit amet
2 Consectetur adipiscing elit
dtype: object
प्रत्येक स्ट्रिंग को एक शीर्षक में बदलें (प्रत्येक स्ट्रिंग में प्रत्येक शब्द के पहले वर्ण को कैपिटल करें, शेष को कम करें):
In [5]: ser.str.title()
Out[5]:
0 Lorem Ipsum
1 Dolor Sit Amet
2 Consectetur Adipiscing Elit
dtype: object
स्वैप केस (लोअरकेस को अपरकेस और इसके विपरीत में कनवर्ट करें):
In [6]: ser.str.swapcase()
Out[6]:
0 LorEM IPsUm
1 dOLOR SIT AMET
2 cONSECTETUR aDIPISCING eLIT
dtype: object
पूंजीकरण को बदलने वाले इन तरीकों के अलावा, कई तरीकों का उपयोग स्ट्रिंग्स के पूंजीकरण की जांच के लिए किया जा सकता है।
In [7]: ser = pd.Series(['LOREM IPSUM', 'dolor sit amet', 'Consectetur Adipiscing Elit'])
जांचें कि क्या यह सब लोअरकेस है:
In [8]: ser.str.islower()
Out[8]:
0 False
1 True
2 False
dtype: bool
क्या यह सब बड़ा है:
In [9]: ser.str.isupper()
Out[9]:
0 True
1 False
2 False
dtype: bool
क्या यह एक शीर्षक युक्त स्ट्रिंग है:
In [10]: ser.str.istitle()
Out[10]:
0 False
1 False
2 True
dtype: bool