他们是在映射函数中使用通配符的一种方式。我有这样的事情:
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 结尾的东西。
我还没有找到一种方法来做到这一点,任何帮助都会很棒,提前致谢。
你可以使用正则表达式来做到这一点:
演示:
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] 删除。
我来说两句