python库--pandas--Series.str--字符串处理

S: Series  I: Index

方法返回值参数说明
.capitalize()S/I 将Series/Index中的字符串大写
.cat()S/I/str 使用给定分隔符连接字符串
other=None None: 使用sep连接给定的Series返回一个str
List_like: 与Series对应位置的字符串用sep连接返回一个S
sep=None分隔符
na_rep=None遇到NA值忽略或使用指定字符替换
.center()S在字符串两端填充指定字符到指定长度
width填充后的字符串长度
fillchar=' '用于填充的字符串
.contains()S[bool]判断指定字符串或正则表达式是否在序列或索引中
pat字符串或正则表达式
case=True是否区分大小写
flags=0可传入re.IGNORECASE之类的参数
na=nan缺失值填充
regex=True是否使用正则表达式匹配
.count()S[int]统计指定字符串在序列字符串中出现的次数
pat字符串或正则表达式
flags=0可传入re.IGNORECASE之类的参数
.decode()S[str]解码
encoding解码方式
errors='strict'error处理方式
.encoode()S[b'']编码
encoding编码方式
error='static'error处理方式
.endswith()S[bool]判断是否以给定的字符串结尾
pat字符串
na=nan缺失值填充
.extract() 使用正则表达式提取需要的内容(只匹配一次)
pat正则表达式(必须含有捕获组, 超过一个必然返回DataFrame)
flags=0可传入re.IGNORECASE之类的参数
expand=NoneTrue: 返回DataFrame(未来版本默认值)
False: 返回S/I/DataFrame(现在版本默认值)
.extractall()df获取所有的正则表达式匹配到的内容(以多级索引的方式展示)
pat含捕获组的正则表达式, 若捕获组设有name则将作为返回的列标签
flags=0可传入re.IGNORECASE之类的参数
.find()S查找sub在序列字符串的子字符串中出现的位置, 找不到返回-1
sub字符串
start=0子字符串开始的位置
end=None子字符串结束的位置
.findall()S[list]相当于对序列中每个字符串执行 re.findall(pat, string)
pat正则表达式
flags=0可传入re.IGNORECASE之类的参数
.get()Si获取指定位置的字符, 超出长度则返回Na
.index()S同.find() 不过找不到将引发Error
.join()Ssep给每个字符串的字符间插入指定字符
.len()S返回每个字符串的长度
.ljust()S同 .center() 不过只在右侧填充
.lower()S所有字符小写
.lstrip()Sto_strip=None去除左侧指定字符, 默认去掉空白符
.match()S[bool]判断字符串与正则表达式是否匹配, 即正则表达式能否匹配到内容
pat字符串或正则表达式
case=True是否区分大小写
flags=0可传入re.IGNORECASE之类的参数
na=nan缺失值填充
as_indexer=None弃用
.normalize()Sfrom返回字符串的Unicode标准格式
.pad()S在序列字符串左侧/右侧/两侧填充指定字符串到指定长度
width将字符串填充到的长度
side='left''left': 在左侧填充
'right': 在右侧填充
'both': 在两侧填充, 原字符串居中
fillchar=' '填充的字符
.partition() 第一次出现pat时将字符串分割为三个部分: pat前面的部分, pat本身, pat后面的部分
pat=' '字符串
expand=TrueTrue: 返回DataFrame/Multilndex
False: 返回Series/Index, 元素为Tuple
.repeat() 将字符串扩展n倍, 比如 'a' 扩展 2 倍为 'aa'
repeatsint: 序列中所有字符串扩展相同倍数
list_like: 长度需和序列长度一致, 对应每个元素扩展对应倍数
.replace()S更新字符串
pat字符串或编译的正则表达式
replstr: 将匹配到的字符串替换为此字符串
fun: 传给fun的是对象相当于re.search(pat, string)的返回值
n=-1替换的次数, 默认全部
case=None是否区分大小写, 如果pat为字符串则默认为True, 若为编译的正则表达式则不能设置
flags=0可传入re.IGNORECASE之类的参数, 但若pat为编译的正则表达式则不能设置
.rfind() 同 .find() 不过从右往左检索
.rindex() 同 .index() 不过从右往左检索
.rjust() 同 .center() 不过只在左侧填充
.rpartition() 同.partition(), 不过从右往左检索pat字符串
.rstrip()Sto_strip=None去除右侧指定字符, 默认去掉空白符
.slice()S截取子字符串
start=None开始位置
stop=None结束位置
step=None步长
.slice_replace()S截取子字符串, 并将截取部分替换为repl
start=None开始位置
stop=None结束位置
repl=None要替换为的字符串
.split() 对字符串按照给定字符进行分割
pat=None分隔符, 默认空白符
n=-1分割次数, 默认全部
expand=FalseTrue: 返回DataFrame/MultiINdex
False: 返回Series/Index
.rsplit() 同.split() 不过从右侧开始分割
.startswith()S[bool]判断序列字符串是否以指定字符串开头
pat字符串
na=nan缺失值填充
.strip()Sto_strip=None去除两侧指定字符, 默认去掉空白符
.swapcase()S将小写字符大写, 将大写字符小写
.title()S将首字母大写, 其余字符小写
.translate() 参考python内置字符串处理方法 .translate()
.upper()S全部大写
.wrap()Swidth在指定位置插入换行符
.zfill()Swidth在字符串前面填充0到指定长度
.isalnum()S[bool]字符串至少包含一个字符且所有字符都是字母(汉字)或数字则返回True
.isalpha()S[bool]字符串至少包含一个字符且所有字符都是字母(汉字)则返回True
.isdigit()S[bool]只包含数字(可以是: Unicode, 全角字符, bytes(b'1'), 罗马数字)
.isspace()S[bool]只包含空白符
.islower()S[bool]至少包含一个小写字符, 且不包含大写字符
.isupper()S[bool]至少包含一个大写字符, 且不包含小写字符
.istitle()S[bool]所有单词大写开头其余小写(标题化)
.isnumeric()S[bool]只包含数字字符
.isdecimal()S[bool]只包含数字(Unicode字符, 全角字符)
.get_dummies()dfsep='|'把字符串按照指定分隔符分割, 并返回分割后的字符串出现的次数
### Python Pandas 字符串操作方法与示例 #### 数据类型的确认与转换 为了确保在Pandas中进行有效的字符串处理,需先验证`Series`或`DataFrame`的数据类型是否为`string`。对于不确定的数据类型,可以通过`.astype("string")`来强制转换。 ```python import pandas as pd pd_not_s = pd.Series(["A", "B", "C", "Aaba", "Baca", "CABA", "dog", "cat"]) print("原始数据类型:", pd_not_s.dtype) # 转换数据类型至 string pd_s = pd_not_s.astype("string") print("转换后的数据类型:", pd_s.dtype) ``` 此段代码展示了如何检查并更改数据系列的存储类型为字符串[^1]。 #### 使用正则表达式进行模式匹配 当涉及到更复杂的字符串筛选条件时,可借助于正则表达式的强大功能。通过调用`str.contains()`函数,并传入相应的正则表达式作为参数,能够实现精确的内容查找。 ```python pattern = r'^[a-zA-Z]+$' # 只包含字母的简单正则表达式例子 filtered_series = pd_s[pd_s.str.contains(pattern, na=False)] print(filtered_series) ``` 这里定义了一个简单的正则表达式用于过滤只含有英文字母的项。 #### 合并与拆分多列信息 针对实际应用中的复杂场景,比如将多个字段组合成一个新的复合字段或者反过来解析现有字段内的子组件,Pandas提供了灵活的操作方式。 ```python data = {'省': ['广东省', '北京市'], '市': ['广州市', '朝阳区']} df = pd.DataFrame(data) # 将两列拼接在一起形成新的‘地址’列 df['地址'] = df['省'] + df['市'] print(df[['地址']]) ``` 这段脚本演示了怎样把省份名和城市名列连接起来创建完整的地理位置描述[^3]。 #### 创建虚拟变量(Dummy Variables) 有时需要基于某些分类特征构建二元指示矩阵,这时可以利用`get_dummies()`函数轻松完成这一任务。 ```python dummy_df = pd.get_dummies(pd_s, prefix='letter') print(dummy_df.head()) ``` 上述命令会根据输入序列生成一组布尔型的新列,每列表明原序列中特定字符的存在与否[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值