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

如何在Pandas中替换含"Local"的Col1值为对应Col2内容?

解决DataFrame列包含指定字符串时的替换问题

你的代码存在的问题:

  • 第一个代码:['Col1'].str.contains是对字符串列表操作,不是针对DataFrame的Col1列,且replace方法无法直接用列名作为替换值。
  • 第二个代码:isin(['Local'])是精确匹配(检查Col1是否等于"Local"),不是包含匹配;同时赋值['Col2']是把Col1改成字符串"Col2",而非取对应行Col2的实际值。
  • 第三个代码:同样犯了isin(['Local'])精确匹配的错误,只有当Client Name_x完全等于"Local"时才会替换,不符合你"包含"的需求。

正确实现方式:

方法1:使用loc+str.contains

这是最直观的写法,先筛选出符合条件的行,再赋值对应Col2的值:

# 筛选Col1包含"Local"的行,将这些行的Col1替换为Col2的值
df.loc[df['Col1'].str.contains('Local'), 'Col1'] = df['Col2']

# 如果Col1存在空值(NaN),建议加上na=False避免筛选出错
df.loc[df['Col1'].str.contains('Local', na=False), 'Col1'] = df['Col2']

方法2:使用mask或where

  • mask:满足条件时替换为指定值
df['Col1'] = df['Col1'].mask(df['Col1'].str.contains('Local', na=False), df['Col2'])
  • where:满足条件时保留第二个参数的值,否则保留原列值(注意条件逻辑)
df['Col1'] = df['Col2'].where(df['Col1'].str.contains('Local', na=False), df['Col1'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:35:28