我有一个带有 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])
