You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用DataFrame另一列子串修剪目标列字符串?指定replace操作可行吗?

问题解答

不行,你写的这段代码达不到预期效果。

原因是pd.Series.replace()的逻辑是:如果传入另一个Series作为匹配规则,它会把这个Series里的所有值当成全局替换项,也就是会把string列中所有出现substring列里任意值的内容都替换为空,而不是按行对应替换每行的子串。

要实现按行对应去除子串的需求,你可以用apply方法逐行处理:

import pandas as pd

df = pd.DataFrame({
  "string": ["abc", "def", "ghi"],
  "substring": ["bc", "e", "ghi"]
})

# 正确的按行替换方式
df['string'] = df.apply(lambda row: row['string'].replace(row['substring'], ''), axis=1)

运行后得到的结果就是你期望的:

stringsubstring
abc
dfe
ghi

内容的提问来源于stack exchange,提问作者Blob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:06:33