在映射函数python中使用通配符

大炮

他们是在映射函数中使用通配符的一种方式。我有这样的事情:

dictionary = {'James':'James Mcree'}

基本上说明它在我的数据框中找到 James 的任何地方都会将名称更改为 James Mcree 但我想以某种方式将通配符放入我的映射函数中,如下所示:

dictionary = {'Jam*':'James Mcree'} 

所以它会在我的数据框中查看任何有起始字母 Jam* 的地方,它会将其更改为 James Mcree。因此,Jam 之后会发生什么并不重要。它可能是 Jammed, Jamis..etc 我只想使用通配符来说明是否有这些字母将其更改为指定的名称。

如果我理解正确,星号代表从这一点开始更改为指定名称 James Mcree 的任何内容。

此外,如果您能够做到这一点,他们也是一种指定如下内容的方法:

dictionary = {'J*s':'James Mcree'}

所以它会寻找任何以 J 开头并以 s 结尾的东西。

我还没有找到一种方法来做到这一点,任何帮助都会很棒,提前致谢。

最大U

你可以使用正则表达式来做到这一点:

演示:

In [29]: df
Out[29]:
      a        b      c
0  Ivan   Jayesh  James
1   Jan  Jaaaaas    Bob

In [30]: df = df.replace(['^J.*s$','Bo.*'],['James Mcree','Bobby'], regex=True)

In [31]: df
Out[31]:
      a            b            c
0  Ivan       Jayesh  James Mcree
1   Jan  James Mcree        Bobby

'^J.*s$'- 是一个正则表达式,这意味着找到一个以J任意数量的任意字符开头的字符串s

特殊的正​​则表达式符号:

^ - 字符串的开头

$ - 字符串的结尾

这是解释 RegEx 的在线服务:https : //regex101.com/r/Uu8bUV/1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章