2017-06-09 10 views
1

私は2000列のスパーステーブルを持っていますが、特定の行とその非ゼロ値を選択する必要があります。どうすればいい?Pandas:スパーステーブルでゼロ以外の値を持つ列を選択する方法

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 
+0

engine1'は ''場合は出力を希望されているものengine2'? – jezrael

答えて

3

あなたは二回フィルタリングすることができます - 最初の行をm2によってマスクm1後、カラムで。 最終使用loc

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

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