pythonic获取索引的方法,值列== 1
Posted
技术标签:
【中文标题】pythonic获取索引的方法,值列== 1【英文标题】:pythonic way to get index,column for value == 1 【发布时间】:2015-10-09 20:07:43 【问题描述】:我目前有一个 MxN 数据框,其中包含优化问题的解决方案。 M 中的 i 和 N 对中的 i 的“活动”i,j 用 1 表示,而“非活动”对用 0 表示。我需要确定所有活动单元格的 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:我的解释还不清楚
【问题讨论】:
你试过your_dataframe == 1
吗?还是您希望将结果作为元组列表?
我认为这是 this question 的副本。试试df[df == 1].index.tolist()
。
@Mauris,好像可以,我试试。 tobias_k,好像 Mauris 和你在同一页上。我会回复你的。
@Mauris, set(df[df == 1].index.tolist()) == set(df.index.tolist()) 产生真。我会尝试你的第一个建议,我认为这可能就是我想要的。
@misterte 你想要行和列作为元组吗?
【参考方案1】:
>>> 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]])
【讨论】:
正是这个。谢谢! 对于任何使用数据框的人,请先使用 df.as_matrix()。以上是关于pythonic获取索引的方法,值列== 1的主要内容,如果未能解决你的问题,请参考以下文章