Python 在数据帧中搜索子字符串并替换它

Python 在数据帧中搜索子字符串并替换它,python,string,python-3.x,pandas,dataframe,Python,String,Python 3.x,Pandas,Dataframe,我有一个条件,虚假数据被创建,我试图清理它 例如 我试图通过删除之后的所有内容来清理这个问题!ut 到目前为止,我已经尝试: SPA_MX = Mexico['Page URL'].str.startswith("http://www.www.one@foxturn.com/ut1") 但这会返回一个布尔值 我想就实现这一点的最有效方法提供建议。您可以使用列上的应用执行此操作,然后使用查找返回模式索引,如果找到,则对str进行切片: In[69]: df['url'].apply(lambd

我有一个条件,虚假数据被创建,我试图清理它

例如

我试图通过删除
之后的所有内容来清理这个问题!ut

到目前为止,我已经尝试:

SPA_MX = Mexico['Page URL'].str.startswith("http://www.www.one@foxturn.com/ut1")
但这会返回一个布尔值


我想就实现这一点的最有效方法提供建议。

您可以使用列上的
应用
执行此操作,然后使用
查找
返回模式索引,如果找到,则对str进行切片:

In[69]:

df['url'].apply(lambda x: x[:x.find('!ut') + 3] if x.find('!ut') != -1 else x)

Out[69]: 
0                             www.one@foxturn.com/!ut
1           www.one@foxturn.com/ut1/5_RTFDEERERTGFEFD
2    www.one@foxturn.com/ut1/5_dvkerfddfrejermsdkasmf
Name: url, dtype: object
输出:

www。one@foxturn.com/


谢谢你,我想继续!但是在这之后放下所有的东西..我怎样才能做到这一点?ie…所有链接看起来都一样。请参见更新,不幸的是,由于位置是可变的,我认为没有使用
apply
就没有一种很好的方法可以做到这一点,因为您无法对字符串列执行可变长度切片
In[69]:

df['url'].apply(lambda x: x[:x.find('!ut') + 3] if x.find('!ut') != -1 else x)

Out[69]: 
0                             www.one@foxturn.com/!ut
1           www.one@foxturn.com/ut1/5_RTFDEERERTGFEFD
2    www.one@foxturn.com/ut1/5_dvkerfddfrejermsdkasmf
Name: url, dtype: object
my_string="www.one@foxturn.com/!ut/5"
final =  my_string.split("!ut")[0]