有没有一种方法可以根据值从熊猫DataFrame中提取索引

时间:2019-10-18 13:53:08

标签: python pandas

我有以下DataFrame:

index col0 col1 col2
0     0    1    0
1     1    0    1
2     0    1    1

我想提取以下索引(那些包含一个(或任何值)的索引):

[(0, 1), (1, 0), (1, 2), (2, 1), (2,2))]

大熊猫中有一种方法可以做到吗?

3 个答案:

答案 0 :(得分:7)

使用np.where + zip


[*zip(*np.where(df))]

[(0, 1), (1, 0), (1, 2), (2, 1), (2, 2)]

答案 1 :(得分:2)

这是一种方法

df.columns=np.arange(df.shape[1])
df.stack().loc[lambda x : x==1].index.tolist()
[(0, 1), (1, 0), (1, 2), (2, 1), (2, 2)]

答案 2 :(得分:1)

您可以使用numpy.nonzero

result = list(zip(*np.nonzero(df.values)))
print(result)

输出

[(0, 1), (1, 0), (1, 2), (2, 1), (2, 2)]