#len#计数import pandas as pd
import numpy as np
s = pd.Series(['amazon','alibaba','Baidu'])
s.str.len()
061725#lower()#大小写转换,转换成小写字母
s = pd.Series(['Amazon','alibaba','Baidu'])
s.str.lower()
0 amazon
1 alibaba
2 baidu
#zfill()#右对齐,前面用0填充到指定字符串长度
s = pd.Series(['56783','34','987766721','326'])
s.str.zfill(10)
"""
0 0000056783
1 0000000034
2 0987766721
3 0000000326
"""
split()
split,按指定字符或表达式分割字符串,类似split的方法返回一个列表类型的序列
#按数字分割
s = pd.Series(['QQ1252号码','QQ1353加我','我389的'])
s.str.split('\d+')
0 [QQ, 号码]
1 [QQ, 加我]
2 [我, 的]
# 按固定字符分割
s = pd.Series(['a_b_c', 'c_d_e', np.nan, 'f_g_h'])
s.str.split('_')
0 [a, b, c]
1 [c, d, e]
2 NaN
3 [f, g, h]
#切分后的列表中的元素可以通过get方法或者 [] 方法进行读取
s.str.split('_').str.get(1)
Out[96]:
0 b
1 d
2 NaN
3 g
#使用expand方法可以轻易地将这种返回展开为一个数据表
s.str.split('_', expand=True)
0120 a b c
1 c d e
2 NaN NaN NaN
3 f g h
#同样,我们也可以限制切分的次数:
s.str.split('_', expand=True, n=1)
010 a b_c
1 c d_e
2 NaN NaN
3 f g_h
rsplit()
rsplit与split相似,不同的是,这个切分的方向是反的,即从字串的尾端向首段切分
s = pd.Series(['a_b_c', 'c_d_e', np.nan, 'f_g_h'])
s.str.rsplit('_', expand=True, n=1)
010 a_b c
1 c_d e
2 NaN NaN
3 f_g h
replace ()
#参数解释"""
pat:str 或编译的正则表达式,字符串可以是字符序列或正则表达式。
case:布尔值,默认无。确定替换是否区分大小写:
regex:布尔值,默认为真。确定 passed-in 模式是否为正则表达式:
"""
s = pd.Series(['A', 'B', 'C', 'Aaba', 'Baca','', np.nan, 'CABA', 'dog', 'cat'])
s.str.replace('^.a|dog', 'XX-XX ', case=False)
Out[27]:
0 A
1 B
2 C
3 XX-XX ba
4 XX-XX ca
56 NaN
7 XX-XX BA
8 XX-XX
9 XX-XX t
pd.Series(['foo', 'fuz', np.nan]).str.replace('f.', 'ba', regex=True)
0 bao
1 baz
2 NaN
pd.Series(['f.o', 'fuz', np.nan]).str.replace('f.', 'ba', regex=False)
0 bao
1 fuz
2 NaN
findall()
#基础用法
Series.str.findall(pat, flags=0)
#参数解释
pat:正则表达式
flags:Flags from re module, e.g. re.IGNORECASE (default is0, which means no flags),是否忽略大小写。
import re
#提取聊天记录中的QQ号
s=pd.Series(['QQ号码123452124','QQ123356123','我的Q123356189','Q号123356111注意','加我Q号123356124有惊喜'])
s.str.findall('\d+')
0 [123452124]
1 [123356123]
2 [123356189]
3 [123356111]
4 [123356124]
s.str.findall('Q')
0 [Q, Q]
1 [Q, Q]
2 [Q]
3 [Q]
4 [Q]
s.str.findall('q')
0 []
1 []
2 []
3 []
4 []
s.str.findall('q', flags=re.IGNORECASE)
0 [Q, Q]
1 [Q, Q]
2 [Q]
3 [Q]
4 [Q]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix