2017-09-22 5 views
2

定義された範囲内の値のサブ範囲を検索:私は系列のデータ値の3つのレンジ持っ

min_range:

27 893.151613 
26 882.384516 
20 817.781935 
dtype: float64 

MAX_RANGE:

28 903.918710 
27 893.151613 
21 828.549032 
dtype: float64 

を私は範囲のリストを作成しました:

range = zip(min_range, max_range) 

出力:

[(893.1516129032259, 903.91870967741943), (882.38451612903225, 893.1516129032259), (817.78193548387094, 828.54903225806447)] 

は、私は、サブ範囲を持っている:

サブ範囲1:824 サブ範囲2:825

を私は、サブ範囲があるれている領域を見つけたいです。

for p,q in zip(min_range, max_range): 
    if (sub-range1 > p) & (sub-range2 < q): 
     print p,q 

出力: 817.781935484 828.549032258

私はその定義された "範囲" からそれぞれの位置を見つけたいです。

予想される出力:

817.781935484 828.549032258 
range = 2 (Position in the range list) 

がどのように私はこれを達成することができますか?どんな助けもありがとう。 2

答えて

4

使用すると、インデックスにすなわち

for i,(p,q) in enumerate(zip(min_range, max_range)): 
    if (sub_range1 > p) & (sub_range2 < q): 
     print(i) 

出力を得るために列挙する。

cnt = 0 
for p,q in zip(min_range, max_range): 
    if (sub-range1 > p) & (sub-range2 < q): 
     print p,q 
     print cnt 
    cnt = cnt + 1 
+0

私は 'p'と' q'は浮動小数点数であると仮定しています。この場合、ビット演算子を使用しないでください。 &の代わりに&の代わりに –

+0

を使用しますか? – Dark

+0

それらがシリーズ/データフレームでない場合、 '&'はビットANDであり、論理ANDではありません。 –

0

カウンタを使用した簡単なアプローチ:

関連する問題