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

Pandas基于字典映射利用df1布尔值更新df2列值的实现方法

Pandas实现方案

核心逻辑是遍历映射字典,匹配df1中值为True的行位置,批量修改df2对应列的对应行值为False:

完整实现代码

import pandas as pd

# 初始数据(你已有的部分可以直接复用)
df1 = pd.DataFrame(data={'a': [True, False, False], 
                         'b': [False, True, False]},
                         index=pd.Series([1, 2, 3], name='index'))
df2 = pd.DataFrame(data={'w': [True, False, False], 
                         'x': [False, True, False],
                         'y': [True, True, True],
                         'z': [True, False, True]},
                         index=pd.Series([1, 2, 3], name='index'))
dic = {'a': ['w', 'x'], 'b': ['y', 'z']}

# 核心处理逻辑
for df1_col, target_df2_cols in dic.items():
    # 取df1当前列值为True的行掩码,加reindex保证索引对齐
    true_rows_mask = df1[df1_col].reindex(df2.index, fill_value=False)
    # 批量修改df2对应位置为False
    df2.loc[true_rows_mask, target_df2_cols] = False

运行结果验证

输出处理后的df2即可得到预期结果:

indexwxyz
1FalseFalseTrueTrue
2FalseTrueFalseFalse
3FalseFalseTrueTrue

补充说明

  • 该方案使用Pandas原生向量化操作,即使数据量较大也能保持较高运行效率
  • 代码中加入的reindex逻辑,即使df1和df2索引不完全对齐也不会报错,缺失的索引位默认不修改df2的值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:15:01