迭代大熊猫中的值

时间:2016-10-27 09:45:23

标签: python python-2.7 pandas matrix dataframe

我在pandas中有一个矩阵

print reducedMatrix
       0      1     3      4
    1  2  99991     0      0
    2  0      4     0      1
    3  3      0  9991      2
    4  1      0     2  99989

并希望迭代它并打印i和j为零值,我使用:

for i,rows in reducedMatrix.iterrows():
        for j,cols in reducedMatrix.iteritems():
            if (reducedMatrix[i][j] == 0): #here we check all zero values
                print i,j

但它不起作用

预期产出

1,3
1,4
2,0
2,3
3,0
4,1

保存行和列名称至关重要

我该如何实现?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我建议使用numpy' where函数。

np.where(df.values == 0)

将返回与条件匹配的行和列的索引。要检索原始行和列名称:

rows, cols = np.where(df.values == 0)
list(zip(df.index[rows], df.columns[cols]))