【Python数据分析】Pandas_字符串处理


Pandas 提供了一系列的字符串函数,因此能够很方便地对字符串进行处理。在本节,我们使用 Series 对象对常用的字符串函数进行讲解。

常用的字符串处理函数如下表所示:

函数名称函数功能和描述
lower()将的字符串转换为小写。
upper()将的字符串转换为大写。
len()得出字符串的长度。
strip()去除字符串两边的空格(包含换行符)。
split()用指定的分割符分割字符串。
cat(sep=“”)用给定的分隔符连接字符串元素。
get_dummies()返回一个带有独热编码值的 DataFrame 结构。
contains(pattern)如果子字符串包含在元素中,则为每个元素返回一个布尔值 True,否则为 False。
replace(a,b)将值 a 替换为值 b。
count(pattern)返回每个字符串元素出现的次数。
startswith(pattern)如果 Series 中的元素以指定的字符串开头,则返回 True。
endswith(pattern)如果 Series 中的元素以指定的字符串结尾,则返回 True。
findall(pattern)以列表的形式返出现的字符串。
swapcase()交换大小写。
islower()返回布尔值,检查 Series 中组成每个字符串的所有字符是否都为小写。
issupper()返回布尔值,检查 Series 中组成每个字符串的所有字符是否都为大写。
isnumeric()返回布尔值,检查 Series 中组成每个字符串的所有字符是否都为数字。
repeat(value)以指定的次数重复每个元素。
find(pattern)返回字符串第一次出现的索引位置。

注意:上述所有字符串函数全部适用于 DataFrame 对象,同时也可以与 Python 内置的字符串函数一起使用,这些函数在处理 Series/DataFrame 对象的时候会自动忽略缺失值数据(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)

输出结果:

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())

输出结果:

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())

输出结果:

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(" "))

输出结果:

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'])
#会自动忽略NaN
print(s.str.cat(sep="_"))

输出结果:

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())

输出结果:

   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 中的每个字符,如果字符中包含空格,则返回 True,否则返回 False。示例如下:

import pandas as pd
import numpy as np
s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
print(s.str.contains(" "))

输出结果:

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))

输出结果:

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"))

输出结果:

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"))

输出结果:

0   -1
1   -1
2    0
3   -1
4   -1
5    0
dtype: int64

如果返回 -1 表示该字符串中没有出现指定的字符。

findall()
import pandas as pd
import numpy as np
s = pd.Series(['C ',' Python','java','go','1125 ','javascript'])
print(s.str.findall("j"))

输出结果:

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())

输出结果:

0            c
1        pYTHON
2          JAVA
3            GO
4         1125
5    JAVASCRIPT
dtype: object
isnumeric()

返回一个布尔值,用来判断是否存在数字型字符串。示例如下:

import pandas as pd
import numpy as np
s = pd.Series(['C ',' Python','java','go','1125','javascript'])
print(s.str.isnumeric())

输出结果:

0    False
1    False
2    False
3    False
4     True
5    False
dtype: bool

参考:C语言中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值