Skip to main content
 首页 » 编程设计

python之Pandas 在 true 时将 bool 列转换为列名

2025年05月04日12duanxz

我有一个带有 bool 值的 df(以及 0 或 1 的 int 值,但现在这并不重要):

A B C D 
0 0 1 0 
1 0 0 0 
0 1 1 1 
1 0 0 1 

我想转换它,以便将“1”(True) 值转换为列的标题名称,将 0 值转换为 NaN。生成的 df 不需要标题。 预期输出:

NaN NaN C   NaN 
A   NaN NaN NaN 
NaN B   C   D 
A   NaN NaN D 

遍历行并通过检查分配这些值可以工作,但是没有更快/更符合 pandas 惯用方式的方法吗?

请您参考如下方法:

也许有 DataFrame.apply 的东西:

df.apply(lambda s: [s.name if v == 1 else np.nan for v in s])