获取索引的pythonic方法,值的列== 1

时间:2015-07-20 15:52:00

标签: python pandas

我目前有一个MxN数据框,其中包含优化问题的解决方案。 "主动" i,{i}中的i和{N}对中的j由1表示,"不活动"我需要确定所有活动单元格的i,j值,希望避免索引或列的for循环。

这是一个例子:

In [73]: sol_df
Out[73]:

    1    2    3   4   5
1   0    0    1   0   0
2   1    0    0   0   0
3   0    1    0   0   0
4   0    0    0   0   0 

在这种情况下,我需要的是一对配对列表(元组会这样做):

[(1,3), (2,1), (3,2)]

有办法吗?

谢谢!

一个。

编辑:解释不清楚 EDIT2:我的解释还不清楚

1 个答案:

答案 0 :(得分:5)

>>> import numpy
>>> a = numpy.array([[1, 0, 1], [0, 1, 1], [0, 1, 0]])
>>> numpy.transpose(numpy.nonzero(a))
array([[0, 0],
       [0, 2],
       [1, 1],
       [1, 2],
       [2, 1]])