Ale*_*ich 8 python regex string replace pandas
我有以下pandas数据帧.为简单起见,我们假设它只有两列:id和search_term
id search_term
37651 inline switch
Run Code Online (Sandbox Code Playgroud)
我做:
train['search_term'] = train['search_term'].str.replace("in."," in. ")
Run Code Online (Sandbox Code Playgroud)
期望上面的数据集不受影响,但我得到了这个数据集的回报:
id search_term
37651 in. in. switch
Run Code Online (Sandbox Code Playgroud)
这意味着inl被替换为in.,ine并被替换为in.,好像我使用正则表达式,其中dot表示任何字符.
如何重新设置第一个命令,以便字面上in.替换为in.任何in未跟随点的任何一个命令,如下所示:
a = 'inline switch'
a = a.replace('in.','in. ')
a
>>> 'inline switch'
Run Code Online (Sandbox Code Playgroud)
0.23 或更高版本中,str.replace()有一个用于切换正则表达式的新选项。以下操作将简单地将其关闭。
df.search_term.str.replace('in.', 'in. ', regex=False)
Run Code Online (Sandbox Code Playgroud)
将导致:
0 inline switch
1 in. here
Name: search_term, dtype: object
Run Code Online (Sandbox Code Playgroud)
尝试转义.:
import pandas as pd
df = pd.DataFrame({'search_term': ['inline switch', 'in.here']})
>>> df.search_term.str.replace('in\\.', 'in. ')
0 inline switch
1 in. here
Name: search_term, dtype: object
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1173 次 |
| 最近记录: |