如何使用np.where()修改pandas DataFrame中符合指定条件的字段值
实现方案
首先导入依赖库:
import pandas as pd import numpy as np
如果还没有构造DataFrame,可以用下面的示例代码构造测试数据,已经有对应df的话直接跳过这步:
df = pd.DataFrame({ 'Policy_id': ['A', 'B', 'A', 'C'], 'Value': ['xyz', 'abc', 'pqr', 'lmn'] })
核心逻辑,用np.where完成条件判断和赋值:
# 先确保Value字段是字符串类型,避免非字符串类型拼接报错 df['Value'] = df['Value'].astype(str) # 条件判断后赋值 df['Value'] = np.where(df['Policy_id'] == 'A', df['Value'] + '*', df['Value'])
执行后打印df即可得到你需要的结果:
Policy_id Value 0 A xyz* 1 B abc 2 A pqr* 3 C lmn
逻辑说明
np.where的参数规则为np.where(判断条件, 条件成立时的返回值, 条件不成立时的返回值),上述代码中:
- 判断条件为
Policy_id等于A - 条件成立时,将原
Value值末尾拼接*返回 - 条件不成立时,直接返回原
Value值
内容的提问来源于stack exchange,提问作者prathik vijaykumar
相关产品推荐
相关产品推荐

