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
相关产品推荐
相关产品推荐

