我试图将Col1中的值替换为Col2中对应的行值,如果Col1包含字符串"Local"
我尝试了3种变化,似乎都不起作用。
df = df['Col1'].replace(['Col1'].str.contains("Local"),["Col2"])
和
df.loc[df['Col1'].isin(['Local']), 'Col1'] = ['Col2']
和
df3['Client Name_x']=df3['Client Name_y'].where(df3['Client Name_x'].isin(['Local']),df3['Client Name_x'])
这两段代码都没有期望的结果…
我想你可以这样写:
df['Col1'] = df['Col1'].mask(df['Col1'].str.contains('Local'), df['Col2'])
如果你不想区分大小写,你可以在str.contains
case=False
另一种方法是:
df['Col1'] = np.where(df['Col1'].str.contains('Local'), df['Col2'], df['Col1'])