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

如何根据DataFrame的CLAUSE列条件替换matu列对应行的值

实现方案

你可以直接用numpy的where函数一行完成需求逻辑,判断CLAUSE为YES时用WEIGHTEDRT的值填充matu,否则保留matu原始值:

import pandas as pd
import numpy as np

# 示例数据构造
df = pd.DataFrame({
    'windcodes': ['163197.SH', '154563.SH', '789645.IB', '1880260.IB'],
    'name': ['shangguo comp', 'guosheng comp', 'guoyou comp', 'shagui comp'],
    'matu': [2.9248, 2.886, None, None],
    'CLAUSE': ['NO', 'YES', 'YES', 'YES'],
    'WEIGHTEDRT': [2.582, 2.773, 3.098, 2.657]
})

# 核心处理逻辑
df['matu'] = np.where(df['CLAUSE'] == 'YES', df['WEIGHTEDRT'], df['matu'])

如果你不想引入numpy依赖,也可以用pandas原生的loc条件赋值实现:

# 原生pandas实现,无需额外依赖
df.loc[df['CLAUSE'] == 'YES', 'matu'] = df['WEIGHTEDRT']

运行后得到的结果和预期完全一致:

windcodesnamematuCLAUSEWEIGHTEDRT
163197.SHshangguo comp2.9248NO2.582
154563.SHguosheng comp2.773YES2.773
789645.IBguoyou comp3.098YES3.098
1880260.IBshagui comp2.657YES2.657

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:36:05