根据值获取列索引标签

时间:2019-09-30 20:00:28

标签: pandas dataframe indexing

我有以下内容:

          C1       C2     C3
0         0        0      1 
1         0        0      1
2         0        0      1

而且我想获取具有1的相应列索引值,因此结果 应该是“ C3”。

我知道如何通过转置数据帧然后获取索引值来执行此操作,但这对于我拥有的数据帧中的数据而言并不理想,我想知道是否会有更有效的解决方案?

1 个答案:

答案 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