Pandas中如何将指定列的特定字符串替换为另一列的对应取值
Pandas列条件替换实现方法
你可以通过以下几种方式实现需求,推荐优先使用loc条件赋值方案,逻辑清晰且性能最优:
方法1:loc条件赋值(推荐)
直接定位到location1取值为Singapore的行,将对应位置的location2值赋值给location1即可:
df.loc[df['location1'] == 'Singapore', 'location1'] = df['location2']
方法2:mask方法(适合链式调用场景)
如果需要在pandas链式操作中完成替换,可以用mask方法,当条件为真时替换为指定值:
df['location1'] = df['location1'].mask(df['location1'] == 'Singapore', df['location2'])
方法3:np.where条件赋值(适合多条件场景)
如果有多个替换规则,也可以用numpy的where方法实现:
import numpy as np df['location1'] = np.where(df['location1'] == 'Singapore', df['location2'], df['location1'])
以上三种方法运行后得到的结果一致,修改后的location1列值如下:
0 London, Paris 1 Tokyo, Boston, Toronto 2 London, New York 3 Hong Kong, Boston 4 Boston Name: location1, dtype: object
内容的提问来源于stack exchange,提问作者codedancer
相关产品推荐
相关产品推荐

