python pandas中的str对象的replace函数

replace函数本身并不复杂,但由于该函数和正则表达式结合会使其作用更加灵活,该函数的主要作用是根据特定的表达式匹配字符串找到后并按照给定的字符或者函数进行替换。

>>> s4 = pd.Series(['foo', 'fuz', np.nan])
# 如下所示,python本身并无法区分'f.'dao'到底是正则
# 还是字符。如果是正则则是f + 任意一个字母,如果是字符
# 则表示‘f.’本身,此时需要指定regex参数,默认是True
>>> s4.str.replace('f.', 'ba', regex=True)
0    bao
1    baz
2    NaN
dtype: object
# 匹配f.字符,没有匹配到一个
>>> s4.str.replace('f.', 'ba', regex=False)
0    foo
1    fuz
2    NaN
dtype: object

# 我们也可以将第二个参数定义为函数
>>> import pandas as pd
>>> import numpy as np
# 我本身对正则re模块也不熟悉,该函数的意思是
# 将匹配到所有结果倒序排列,python [::-1]的功能
# 确实的屌炸了
>>> rep1 = lambda m : m.group(0)[::-1]
>>> s4 = pd.Series(['foo 123', 'bar, baz', np.nan])
>>> s4.str.replace(r'[a-z]+', rep1)
0     oof 123
1    rab, zab
2         NaN
dtype: object

# 举一个简单的例子,这或许才是我们最常用的
# 将一个字符串替换成为另一个字符串
>>> s4 = pd.Series(['foo', 'fuz', np.nan, 'foofo'])

>>> s4.str.replace('f', '100%', regex=False)
0         100%oo
1         100%uz
2            NaN
3    100%oo100%o
dtype: object

# 如果想做忽略大小写的匹配,可以添加case参数为True。
>>> s4.str.replace('F', '100%', case=False)
0         100%oo
1         100%uz
2            NaN
3    100%oo100%o
dtype: object

哈哈, 以上就是python小工具关于replace方法的介绍,总体上replace方法还是稍微有点负责,尤其是涉及到正则表达式的时候。有兴趣欢迎关注公众号:python小工具。一起学习python和pandas。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值