Pandas:替换string中的substring

lde*_*ina 4 python replace substring dataframe pandas

我想替换icashier.alipay.com列中的子字符串df

url
icashier.alipay.com/catalog/2758186/detail.aspx
icashier.alipay.com/catalog/2758186/detail.aspx
icashier.alipay.com/catalog/2758186/detail.aspx
vk.com
Run Code Online (Sandbox Code Playgroud)

aliexpress.com.

欲望输出

aliexpress.com/catalog/2758186/detail.aspx
aliexpress.com/catalog/2758186/detail.aspx
aliexpress.com/catalog/2758186/detail.aspx
vk.com
Run Code Online (Sandbox Code Playgroud)

我尝试df['url'].replace('icashier.alipay.com', 'aliexpress.com', 'inplace=True')但它回来了empty dataframe.

jez*_*ael 13

使用replacedict更换和参数inplace=Trueregex=True:

df['url'].replace({'icashier.alipay.com': 'aliexpress.com'}, inplace=True, regex=True)
print (df)
                                          url
0  aliexpress.com/catalog/2758186/detail.aspx
1  aliexpress.com/catalog/2758186/detail.aspx
2  aliexpress.com/catalog/2758186/detail.aspx
3                                      vk.com
Run Code Online (Sandbox Code Playgroud)

  • 这似乎仅适用于列,不适用于数据框。当我在数据帧上尝试这个时,它不再找到子字符串。 (3认同)

EdC*_*ica 8

用于str.replace替换子字符串,replace查找完全匹配,除非您传递正则表达式模式和参数regex=True:

In [25]:
df['url'] = df['url'].str.replace('icashier.alipay.com', 'aliexpress.com')
df['url']

Out[25]:
0    aliexpress.com/catalog/2758186/detail.aspx
1    aliexpress.com/catalog/2758186/detail.aspx
2    aliexpress.com/catalog/2758186/detail.aspx
3                                        vk.com
Name: url, dtype: object
Run Code Online (Sandbox Code Playgroud)