2017-03-14 22 views
-1

の要素見つける:私は次のようなパンダのデータフレームを持っているパンダのデータフレーム

0 1 
0 2 
2 3 
1 4 

以下れる私は何をしたいの:私は、入力として2を取得する場合、私のコードは、2を検索することになっていますデータフレーム内でそれが見つかると、他の列の値を返します。上記の例では、私のコードは0と3を返します。私は単に各行を見て要素のいずれかが2に等しいかどうかを調べることができますが、このような問題に対して1つのライナーがあるかどうか疑問に思っていました。

UPDATE:列のいずれもインデックス列ではありません。

おかげ

+0

カラム名はありますか?一番左の列はインデックスですか?あなたは何の努力を払っていますか?これは基本的なパンダのフィルタリングです。 – blacksite

+0

@not_a_robot私が今問題に取り組んでいる方法は、私が別々に各行を取得してから、目的の項目を探すことです。私はフィルタリングを検索します。 – ahajib

答えて

1

あなたはこの必要があります。

を210
n_input = 2 

df[(df == n_input).any(1)].stack()[lambda x: x != n_input].unique() 
# array([0, 3]) 
1
>>> df = pd.DataFrame({'A': [0, 0, 2, 1], 'B': [1,2,3,4]}) 
>>> df 
    A B 
0 0 1 
1 0 2 
2 2 3 
3 1 4 

次パンダの構文はSELECT B FROM df WHERE A = 2

>>> df[df['A'] == 2]['B'] 
2 3 
Name: B, dtype: int64 

SQLと同じですpandas.DataFrame.queryもあります:

>>> df.query('A == 2')['B'] 
2 3 
Name: B, dtype: int64 
関連する問題