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

Pandas如何将布尔值为True的单元格替换为对应列名、False置空

实现方法

先给出可直接复现的完整代码:

import pandas as pd
import numpy as np

# 构造输入示例DataFrame,你可以替换成自己的数据读取逻辑
data = {
    "Acct Name": ["csld solutions", "bolo construct"],
    "product 1": [True, False],
    "Product 2": [False, True]
}
df = pd.DataFrame(data)

# 筛选需要处理的产品列,此处排除不需要修改的客户名称列
product_cols = df.columns.drop("Acct Name")

# 核心替换逻辑:True替换为对应列名,False替换为空值
df[product_cols] = np.where(df[product_cols], product_cols, "")

运行后得到的df和你给出的预期输出完全一致。

常见场景调整说明

  • 如果有多个不需要处理的非产品列,修改筛选列的代码为:product_cols = df.columns.drop(["列名1", "列名2"]),把所有不需要修改的列都加入列表即可
  • 如果需要把False对应的位置替换为NaN而非空字符串,把替换逻辑里的""改为np.nan即可
  • 如果你的原始数据里布尔值是字符串格式的"TRUE"/"FALSE",需要先转成布尔类型再执行替换:
    df[product_cols] = df[product_cols].replace({"TRUE": True, "FALSE": False}).astype(bool)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:09:03