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

pandas如何基于指定条件对特定列执行NaN值填充操作

问题原因

你现有代码的核心问题是cols = df.columns.tolist()[-2]只选中了倒数第1个列(即col3),没有覆盖需要修改的col4列。

修正方案

以下是两种常用的可直接运行的实现方式:

写法1:loc索引(官方更推荐,可读性更高)

import numpy as np
# 直接指定需要修改的列
df.loc[df['col2'] == True, ['col3', 'col4']] = np.nan

# 如果不想写死列名,要固定取最后两列的话用下面的写法
# cols = df.columns[-2:]
# df.loc[df['col2'] == True, cols] = np.nan

写法2:沿用np.where逻辑调整

import numpy as np
cols = df.columns[-2:] # 用切片取最后两列,代替原来的单索引取一列
df[cols] = np.where(df['col2'] == True, np.nan, df[cols])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:06:06