2016-07-25 4 views
1

Я хочу заменить подстроку 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 

к aliexpress.com.

выход Желание

aliexpress.com/catalog/2758186/detail.aspx 
aliexpress.com/catalog/2758186/detail.aspx 
aliexpress.com/catalog/2758186/detail.aspx 
vk.com 

df['url'].replace('icashier.alipay.com', 'aliexpress.com', 'inplace=True') Я стараюсь, но вернуть empty dataframe.

ответ

5

Использование replace с dict для замены и параметров inplace=True и regex=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 
2

использование 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 
+0

Это не операция на месте; нужно назначить обратно 'df ['url']' – Dmitri

+0

@Dmitri отметил, обновил ответ, спасибо – EdChum

Смежные вопросы