如何在无列名的Pandas DataFrame中获取含True值的列索引?
获取DataFrame中True值所在的列索引
假设你的DataFrame对象名为df,以下几种方法可以快速定位单行DataFrame中True值对应的列索引:
方法1:利用idxmax()
因为True在数值运算中等价于1,False等价于0,idxmax()会返回第一个最大值(即第一个True)所在的列索引:
# 构造示例DataFrame import pandas as pd df = pd.DataFrame([[True, False, False, False, False, False, False, False]]) # 获取列索引 target_index = df.loc[0].idxmax() print(target_index) # 输出:0
方法2:布尔筛选列
通过布尔值直接筛选出值为True的列,再提取其索引:
target_index = df.columns[df.loc[0]].tolist()[0] print(target_index) # 输出:0
方法3:结合eq()和any()
先判断每列是否存在True,再筛选出符合条件的列索引:
target_index = df.eq(True).any()[lambda x: x].index[0] print(target_index) # 输出:0
以上方法均适用于你提供的两种场景,无论是True在第0列还是第4列,都能准确返回对应的列索引。
内容的提问来源于stack exchange,提问作者sclee1
相关产品推荐
相关产品推荐

