pandas 如何将一列中的值替换为包含“xxx”的字符串,并替换为另一列中的值

pu3pd22g  于 2023-01-24  发布在  其他
关注(0)|答案(1)|浏览(206)

如果Col1包含字符串“Local”,我将尝试用Col2中对应的行值替换Col1中的值。
我试过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'])

这两段代码都没有预期的结果...

oxcyiej7

oxcyiej71#

我想你可以用途:

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'])

相关问题