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

如何基于列当前值及另外两列值重写Pandas列映射?

Pandas DataFrame 条件映射处理

原始数据

先构造示例DataFrame:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'is_and_mp': ["'100'", "'400'", "'100'", "'400'"],
    'market_state': [None, None, 'ALGO', 'OPENING'],
    'reason': [np.nan, np.nan, np.nan, np.nan]
})

需求说明

当满足以下所有条件时,将market_state字段替换为CONTINUOUS_TRADING:

  • is_and_mp取值为'100'或'400'
  • market_state为None
  • reason为NaN
    同时保证其他不符合条件的行不被修改。

解决方案

使用loc结合布尔条件精准定位并修改目标行:

# 组合判断条件
condition = (df['is_and_mp'].isin(["'100'", "'400'"])) & \
            (df['market_state'].isna()) & \
            (df['reason'].isna())

# 仅对符合条件的行修改market_state
df.loc[condition, 'market_state'] = 'CONTINUOUS_TRADING'

处理结果

执行代码后,DataFrame变为:

is_and_mp       market_state  reason
0     '100'  CONTINUOUS_TRADING     NaN
1     '400'  CONTINUOUS_TRADING     NaN
2     '100'                ALGO     NaN
3     '400'              OPENING     NaN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:15:43