我有两列像这样:

                                       string                    s
0    the best new york cheesecake new york ny             new york
1               houston public school houston              houston

我想删除 s 中最后一次出现的 string 。就上下文而言,我的 DataFrame 有数十万行。我知道 str.replacestr.rfind ,但是没有任何东西可以实现两者的理想组合,而且我在即兴解决方案时遇到了空白。

在此先感谢您的帮助!

最佳答案

您可以使用 rsplitjoin :

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/

10-10 15:53