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

基于布尔掩码按对应列设置Pandas DataFrame值的实现

解决方法:根据B列空值掩码替换A列对应值

嘿,这个需求用Pandas的掩码操作就能轻松搞定,下面是完整的实现步骤和代码:

完整代码示例

import pandas as pd
import numpy as np

# 构建原始DataFrame
df = pd.DataFrame({
    'A_1': [1, 2, 3],
    'A_2': [4, 5, 6],
    'B_1': ['y', 'n', np.nan],
    'B_2': ['n', np.nan, np.nan]
})

# 生成空值掩码:B列空值位置标记为True
mask = df[['B_1', 'B_2']].isnull()

# 用掩码替换A列对应位置的值为999
df[['A_1', 'A_2']] = df[['A_1', 'A_2']].mask(mask, 999)

print(df)

代码细节解释

  • 生成掩码:使用isnull()方法获取B_1和B_2的空值位置,得到一个布尔矩阵——空值所在的位置为True,非空位置为False,这个矩阵就是我们用来定位替换位置的掩码。
  • 执行替换:调用mask()方法,当掩码为True时,将A_1、A_2对应位置的值替换为999;掩码为False的位置则保留原始值,完美匹配你的需求。

运行后得到的目标DataFrame

A_1  A_2 B_1   B_2
0    1    4   y     n
1    2  999   n  NaN
2  999  999 NaN  NaN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:46:32