我有两列像这样:
string s
0 the best new york cheesecake new york ny new york
1 houston public school houston houston
我想删除
s
中最后一次出现的 string
。就上下文而言,我的 DataFrame 有数十万行。我知道 str.replace
和 str.rfind
,但是没有任何东西可以实现两者的理想组合,而且我在即兴解决方案时遇到了空白。在此先感谢您的帮助!
最佳答案
您可以使用 rsplit
和 join
:
df.apply(lambda x: ''.join(x['string'].rsplit(x['s'],1)),axis=1)
输出:
0 the best new york cheesecake ny
1 houston public school
dtype: object
编辑:
df['string'] = df.apply(lambda x: ''.join(x['string'].rsplit(x['s'],1)),axis=1).str.replace('\s\s',' ')
print(df)
输出:
string s third
0 the best new york cheesecake ny new york 1
1 houston public school houston 1
关于python - str.replace 从pandas DataFrame 的后面开始,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45777722/