有没有一种方法可以返回熊猫中一个单元格的索引名和列名

时间:2019-11-06 15:13:08

标签: python pandas dataframe

我有一个填充有True / False值的数据框。我想遍历数据框的每个单元格,如果该值为True,则在该单元格位置返回索引名称和列名称。我也很高兴只返回评估为True的单元格的行/列索引。

我认为使用dataframe.applymap和返回单元格的行的函数可能是一种快速的熊猫方法,但是我不知道如何为特定单元格调用索引和列名。基本上,它就像寻找相反的iloc。

或者,我也很高兴取回一个数据框,该数据框是一个包含所有真实值的单独数据框。谢谢!

1 个答案:

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