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

Pandas如何将指定列中值为1的位置对应列名存入新增h列

Pandas新增列h匹配列名实现方法

首先给出测试基础代码:

import pandas as pd
dfz = pd.DataFrame({'A' : [1,0,0,1,0,0],
                    'B' : [1,0,0,1,0,1],
                    'C' : [1,0,0,1,3,1],
                    'D' : [1,0,0,1,0,0]})

需求规则

遍历A、B、C、D四列,对应行单元格值为1时,h列对应位置存储该单元格所属列名。

实现代码

场景1:单行存在多个符合条件的列名时,全部拼接展示

dfz['h'] = dfz.loc[:, 'A':'D'].eq(1).dot(dfz.columns + ',').str.rstrip(',')

场景2:仅返回第一个符合条件的列名

# 先匹配值为1的单元格,取第一个匹配列名,无匹配时返回空值
match_mask = dfz.loc[:, 'A':'D'].eq(1)
dfz['h'] = match_mask.idxmax(axis=1).where(match_mask.any(axis=1), '')

输出效果(以场景1为例)

索引ABCDh
01111A,B,C,D
10000
20000
31111A,B,C,D
40030
50110B,C

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:24:01