我想替换df的列中的子字符串icashier.alipay.com
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。
发布于 2016-07-25 18:56:05
使用带有dict的replace和regex=True进行替换
df['url'] = df['url'].replace({'icashier.alipay.com': 'aliexpress.com'}, 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发布于 2016-07-25 18:55:15
使用str.replace替换子字符串,除非传递正则表达式模式和参数regex=True,否则replace将查找完全匹配的内容
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发布于 2021-02-09 23:13:51
以防有人(比如我)需要替换整个DataFrame中的子串:
df = df.apply(lambda col: col.str.replace('icash...', 'aliex...'))或仅在已定义的列中(而所有其他列保持不变):
cols = ['a', 'c'] # list of all columns with value to replace
df = df.apply(lambda col: col.str.replace('icash...', 'aliex...') if col.name in cols else col)https://stackoverflow.com/questions/38565849
复制相似问题