2
DataFrameがあり、各行で関数を実行しています。 row要素の1つを満たしたものが辞書に追加されます。この時点で私は機能を終了したい、それは従来のループではないので、私はbreak
を使用することはできません。pandasデータフレームの各行で関数を実行し、条件が満たされたときに関数を停止する方法
各行に機能を適用する別の方法を使用するか、apply
メソッドを「適用」するのを停止する方法がありますか?
コード
test = # exert from the df I'm using
30MA close
29 0.001311 0.000900
30 0.001313 0.001060
31 0.001294 0.001150
32 0.001290 0.001000
33 0.001293 0.000950
34 0.001305 0.000906
35 0.001310 0.000767
36 0.001318 0.000800
37 0.001325 0.000598
38 0.001331 0.000601
# Create and run buy and hold backtest
# buy and hold is measured by the appriciation from first price that crosses the 30MA to close of the most recent period
buy_and_hold_results = {}
coin = 'BBR'
def buy_and_hold(close, MA, coin):
if MA < close:
entry = close
exit = coins[coin].loc[len(coins[coin].index)-1].close
profit = exit/entry
buy_and_hold_results[coin] = profit
test.apply(lambda x : buy_and_hold(x['close'], x['30MA'], coin), axis=1)
buy_and_hold_results