2016-04-01 12 views
2

私は以下に似たデータフレームを持っている:パイソン - データフレーム条件付きのインデックス値選択

     close_price short_lower_band long_lower_band 
Equity(8554)    180.530  184.235603  183.964306 
Equity(2174)    166.830  157.450404  157.160282 
Equity(23921)    124.670  127.243468  126.072039 
Equity(26807)    117.910  108.761587  107.190081 
Equity(42950)    108.070   97.491851  96.868036 
Equity(4151)    97.380   98.954371  98.335786 

「近い価格は」「short_lower_band」より少ないと '未満である私は、インデックス値のリストを生成したいですlong_lower_band '。だから上記のサンプルデータフレームからになるだろう:

long_secs = [Equity(8554), Equity(23921), Equity(4151)] 

これを行う方法を考え出すで任意の助けをいただければ幸いです。

答えて

0

はこの試してみてください。

In [336]: df[(df.close_price < df.short_lower_band) & \ 
    .....: (df.close_price < df.long_lower_band)].index.tolist() 
Out[336]: ['Equity(8554)', 'Equity(23921)', 'Equity(4151)'] 

In [334]: df 
Out[334]: 
       close_price short_lower_band long_lower_band 
Equity(8554)  180.53  184.235603  183.964306 
Equity(2174)  166.83  157.450404  157.160282 
Equity(23921)  124.67  127.243468  126.072039 
Equity(26807)  117.91  108.761587  107.190081 
Equity(42950)  108.07   97.491851  96.868036 
Equity(4151)   97.38   98.954371  98.335786 

In [335]: 

In [335]: df[(df.close_price < df.short_lower_band) & \ 
    .....: (df.close_price < df.long_lower_band)].index.values 
Out[335]: array(['Equity(8554)', 'Equity(23921)', 'Equity(4151)'], dtype=object) 

かをあなたの代わりにnumpyの配列のプレーンなリストが必要な場合