我有一个填充有True / False值的数据框。我想遍历数据框的每个单元格,如果该值为True,则在该单元格位置返回索引名称和列名称。我也很高兴只返回评估为True的单元格的行/列索引。
我认为使用dataframe.applymap和返回单元格的行的函数可能是一种快速的熊猫方法,但是我不知道如何为特定单元格调用索引和列名。基本上,它就像寻找相反的iloc。
或者,我也很高兴取回一个数据框,该数据框是一个包含所有真实值的单独数据框。谢谢!
答案 0 :(得分:2)
您可以尝试融合(pd.melt)数据框,同时将索引保留为变量:
df = pd.DataFrame(np.random.choice([True,False],(5,5)),
columns=list("abcde"), index = list('fghij'))
# a b c d e
# f False True True True False
# g True True False False True
# h False True True False False
# i True True False False False
# j True True False True True
df.reset_index().melt(id_vars='index').query('value == True')
输出:
index variable value
1 g a True
3 i a True
4 j a True
5 f b True
6 g b True
7 h b True
8 i b True
9 j b True
10 f c True
12 h c True
15 f d True
19 j d True
21 g e True
24 j e True