Pandas:如何在稀疏表中选择具有非零值的列

时间:2017-06-09 08:36:06

标签: python pandas

我有一个带有2000列的稀疏表,我想选择几个特定的​​行及其非零值。我怎么能这样做?

    id       name   e1   e2   e3   e4 . . e550 . . e1200 .   e1760. . e2000
    1      engine1   0   0    0    2322   1300               140       0
    2      engine2   0   0  1230   0        0        2100              0
    .
    .
    .
    998000


df[df.name==engine2 & ? ]
    id    name      e3       e1200
    2   engine2    1230       2100   

df[df.name==engine1 & ? ]

    id    name      e4       e550     e1760
    1   engine1    2322       1300      140

2 个答案:

答案 0 :(得分:3)

您可以按掩码m1过滤两次 - 第一行,然后按m2过滤。 上次使用loc

m1 = (df['name'] == 'engine2')
m2 = (df[m1] != 0).all()

print (df.loc[m1,m2])
   id     name    e3  e1200
1   2  engine2  1230   2100

答案 1 :(得分:0)

所以基本上要过滤掉,请使用

new_df = df.loc[<enter row number here>] new_df = new_df[new_df != 0]

此new_df现在将具有所需的非零值