私はすべての値がall
により比較サブセット['xk', 'yk']
にTrue
あるかどうかをチェックすることができると思う:
b = df[(df[['xk', 'yk']] == 0).all(1)].index.tolist()
別の解決策は、&
と第二の条件を追加します:
b = (df[(df['xk'] == 0) & (df['yk'] == 0)].index.tolist())
サンプル:
df = pd.DataFrame({'xk':[0,2,3],
'yk':[0,5,0],
'aa':[0,1,0]})
print (df)
aa xk yk
0 0 0 0
1 1 2 5
2 0 3 0
b = df[(df[['xk', 'yk']] == 0).all(1)].index.tolist()
print (b)
[0]
b1 = (df[(df['xk'] == 0) & (df['yk'] == 0)].index.tolist())
print (b1)
[0]
第2の解決策は速いです:完全に働いた
#length of df = 3k
df = pd.concat([df]*1000).reset_index(drop=True)
In [294]: %timeit df[(df[['xk', 'yk']] == 0).all(1)].index.tolist()
1000 loops, best of 3: 1.21 ms per loop
In [295]: %timeit (df[(df['xk'] == 0) & (df['yk'] == 0)].index.tolist())
1000 loops, best of 3: 828 µs per loop
おかげで、私はちょうど特定の行のインデックスの代わりに、私は理解している場合を確認していないすべてのインデックス – WGP
のリストを返すを返すしたい場合について。 'df = pd.DataFrame({'xk':[0,2,0]、 'yk':[0,5,0]、 'aa':[0,1,0]}) を使用する場合は、 (df ['xk'] == 0)&(df ['yk'] == 0)]) 'を取得します。あなたはリターンが必要ですか?位置による第1の指標値または第2の指標値? – jezrael