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

如何基于Boolean值为Pandas DataFrame生成列名汇总列?

解决方案

首先构造与你需求匹配的示例DataFrame:

import pandas as pd

df = pd.DataFrame({
    'black': [True, False, True, False],
    'yellow': [True, True, True, False],
    'orange': [True, False, False, True]
})

方法一:用apply逐行处理(逻辑直观)

适合小数据集,代码可读性强:

df['summary'] = df.apply(lambda row: ', '.join(row[row].index), axis=1)

逻辑说明:row[row]会筛选出当前行值为True的元素,取这些元素的索引(即列名),再用, 拼接成目标字符串。

方法二:用dot方法(高效推荐)

适合大数据集,运行速度远快于apply:

df['summary'] = df.dot(df.columns + ', ').str.rstrip(', ')

逻辑说明:dot运算会将每行中True对应的列名与, 拼接,最后用str.rstrip(', ')移除末尾多余的逗号和空格。

执行后得到的结果完全符合你的需求,最终DataFrame如下:

blackyelloworangesummary
TrueTrueTrueblack, yellow, orange
FalseTrueFalseyellow
TrueTrueFalseblack, yellow
FalseFalseTrueorange

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:25:15