我有以下内容:
C1 C2 C3
0 0 0 1
1 0 0 1
2 0 0 1
而且我想获取具有1的相应列索引值,因此结果 应该是“ C3”。
我知道如何通过转置数据帧然后获取索引值来执行此操作,但这对于我拥有的数据帧中的数据而言并不理想,我想知道是否会有更有效的解决方案?
答案 0 :(得分:1)
我会将结果保存在float
中,因为否则可能会有不止一列的值等于1。您可以使用DataFrame.loc
如果所有列值都必须为1,则可以使用:
list
输出:
df.loc[:,df.eq(1).all()].columns.tolist()
如果不需要,请使用:
['C3']
或根据建议的 @piRSquared ,您可以直接从df.loc[:,df.eq(1).any()].columns.tolist()
中进行选择:
df.columns