Pandas 提供了一系列的字符串函數(shù),,因此能夠很方便地對字符串進(jìn)行處理。在本節(jié),,我們使用 Series 對象對常用的字符串函數(shù)進(jìn)行講解,。
常用的字符串處理函數(shù)如下表所示:
函數(shù)名稱 |
函數(shù)功能和描述 |
lower() |
將的字符串轉(zhuǎn)換為小寫。 |
upper() |
將的字符串轉(zhuǎn)換為大寫,。 |
len() |
得出字符串的長度,。 |
strip() |
去除字符串兩邊的空格(包含換行符)。 |
split() |
用指定的分割符分割字符串,。 |
cat(sep="") |
用給定的分隔符連接字符串元素,。 |
get_dummies() |
返回一個(gè)帶有獨(dú)熱編碼值的 DataFrame 結(jié)構(gòu)。 |
contains(pattern) |
如果子字符串包含在元素中,,則為每個(gè)元素返回一個(gè)布爾值 True,,否則為 False。 |
replace(a,b) |
將值 a 替換為值 b,。 |
count(pattern) |
返回每個(gè)字符串元素出現(xiàn)的次數(shù),。 |
startswith(pattern) |
如果 Series 中的元素以指定的字符串開頭,則返回 True,。 |
endswith(pattern) |
如果 Series 中的元素以指定的字符串結(jié)尾,,則返回 True。 |
findall(pattern) |
以列表的形式返出現(xiàn)的字符串,。 |
swapcase() |
交換大小寫,。 |
islower() |
返回布爾值,檢查 Series 中組成每個(gè)字符串的所有字符是否都為小寫,。 |
issupper() |
返回布爾值,,檢查 Series 中組成每個(gè)字符串的所有字符是否都為大寫。 |
isnumeric() |
返回布爾值,,檢查 Series 中組成每個(gè)字符串的所有字符是否都為數(shù)字,。 |
repeat(value) |
以指定的次數(shù)重復(fù)每個(gè)元素。 |
find(pattern) |
返回字符串第一次出現(xiàn)的索引位置。 |
注意:上述所有字符串函數(shù)全部適用于 DataFrame 對象,,同時(shí)也可以與 Python 內(nèi)置的字符串函數(shù)一起使用,,這些函數(shù)在處理 Series/DataFrame 對象的時(shí)候會(huì)自動(dòng)忽略缺失值數(shù)據(jù)(NaN)。
lower()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C', 'Python', 'java', 'go', np.nan, '1125','javascript'])
- print(s.str.lower)
輸出結(jié)果:
0 tom
1 william rick
2 john
3 alber@t
4 NaN
5 1234
6 stevesmith
dtype: object
len()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C', 'Python', 'java', 'go', np.nan, '1125','javascript'])
- print(s.str.len())
輸出結(jié)果:
0 1.0
1 6.0
2 4.0
3 2.0
4 NaN
5 4.0
6 10.0
dtype: float64
strip()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ', ' Python', 'java', 'go', np.nan, '1125 ','javascript'])
- print(s.str.strip())
輸出結(jié)果:
0 C
1 Python
2 java
3 go
4 NaN
5 1125
6 javascript
dtype: object
split(pattern)
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
- print(s.str.split(" "))
輸出結(jié)果:
0 [C, ]
1 [, Python]
2 [java]
3 [go]
4 [1125, ]
5 [javascript]
dtype: object
cat(sep="")
- import pandas as pd
- import numpy as np
- s = pd.Series(['C', 'Python', 'java', 'go', np.nan, '1125','javascript'])
- #會(huì)自動(dòng)忽略NaN
- print(s.str.cat(sep="_"))
輸出結(jié)果:
C_Python_java_go_1125_javascript
get_dummies()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C', 'Python', 'java', 'go', np.nan, '1125','javascript'])
- print(s.str.get_dummies())
輸出結(jié)果:
1125 C Python go java javascript
0 0 1 0 0 0 0
1 0 0 1 0 0 0
2 0 0 0 0 1 0
3 0 0 0 1 0 0
4 0 0 0 0 0 0
5 1 0 0 0 0 0
6 0 0 0 0 0 1
contains()
檢查 Series 中的每個(gè)字符,,如果字符中包含空格,,則返回 True,否則返回 False,。示例如下:
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
- print(s.str.contains(" "))
輸出結(jié)果:
0 True
1 True
2 False
3 False
4 True
5 False
dtype: bool
repeat()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
- print(s.str.repeat(3))
輸出結(jié)果:
0 C C C
1 Python Python Python
2 javajavajava
3 gogogo
4 1125 1125 1125
5 javascriptjavascriptjavascript
dtype: object
startswith()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
- #若以指定的"j"開頭則返回True
- print(s.str.startswith("j"))
輸出結(jié)果:
0 False
1 False
2 True
3 False
4 False
5 True
dtype: bool
find()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
- print(s.str.find("j"))
輸出結(jié)果:
0 -1
1 -1
2 0
3 -1
4 -1
5 0
dtype: int64
如果返回 -1 表示該字符串中沒有出現(xiàn)指定的字符,。
findall()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
- print(s.str.findall("j"))
輸出結(jié)果:
0 []
1 []
2 [j]
3 []
4 []
5 [j]
dtype: object
swapcase()
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
- print(s.str.swapcase())
輸出結(jié)果:
0 c
1 pYTHON
2 JAVA
3 GO
4 1125
5 JAVASCRIPT
dtype: object
isnumeric()
返回一個(gè)布爾值,用來判斷是否存在數(shù)字型字符串,。示例如下:
- import pandas as pd
- import numpy as np
- s = pd.Series(['C ',' Python','java','go','1125','javascript'])
- print(s.str.isnumeric())
輸出結(jié)果:
0 False
1 False
2 False
3 False
4 True
5 False
dtype: bool
|