艾瑪艾*_*瑪艾瑪 3 python regex dataframe python-3.x pandas
有价值的df
0 1
0 RS 125 | password1
1 EURO 25 | password2
2 DNR 30 | password3
Run Code Online (Sandbox Code Playgroud)
使用正则表达式如何一次更改这些值的值,喜欢RS,EURO,DNR之后的值应该替换为100
输出应该是
0 1
0 RS 100 | password1
1 EURO 100 | password2
2 DNR 100 | password3
Run Code Online (Sandbox Code Playgroud)
试过这个
def Currency(0):
pattern = re.compile("(Rs |EURO |DNR |)")
result = pattern.match(name)
Run Code Online (Sandbox Code Playgroud)
试图替换匹配的.
你可以用
df['col'] = df['col'].str.replace(r'(?i)((?:Rs|EURO|DNR)\s*)\d+', r'\g<1>100')
Run Code Online (Sandbox Code Playgroud)
或者,如果要将货币名称与整个单词匹配,请在捕获组前加上单词边界\b:
r'(?i)\b((?:Rs|EURO|DNR)\s*)\d+'
^^
Run Code Online (Sandbox Code Playgroud)
看到这个正则表达式演示.
细节
(?i) - 不区分大小写的标志((?:Rs|EURO|DNR)\s*)- 第1组(\g<1>在替换模式中指的是此值):
(?:Rs|EURO|DNR)- Rs或EURO或DNR\s* - 0+空格\d+ - 一个或多个数字请参阅正则表达式演示.
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |