use np.where instead of apply

This commit is contained in:
Matthias
2024-06-02 17:09:23 +02:00
parent bfb29d3c14
commit d5361d84fa
+3 -8
View File
@@ -117,26 +117,21 @@ def populate_dataframe_with_trades(
is_between, "imbalances" is_between, "imbalances"
].apply(lambda x: stacked_imbalance_ask(x, stacked_imbalance_range=_stacked_imb)) ].apply(lambda x: stacked_imbalance_ask(x, stacked_imbalance_range=_stacked_imb))
bid = df.loc[is_between, "bid"].apply( bid = np.where(
lambda _: np.where(
trades_grouped_df["side"].str.contains("sell"), trades_grouped_df["side"].str.contains("sell"),
trades_grouped_df["amount"], trades_grouped_df["amount"],
0, 0,
) )
) ask = np.where(
ask = df.loc[is_between, "ask"].apply(
lambda _: np.where(
trades_grouped_df["side"].str.contains("buy"), trades_grouped_df["side"].str.contains("buy"),
trades_grouped_df["amount"], trades_grouped_df["amount"],
0, 0,
) )
)
deltas_per_trade = ask - bid deltas_per_trade = ask - bid
min_delta = 0 min_delta = 0
max_delta = 0 max_delta = 0
delta = 0 delta = 0
for deltas in deltas_per_trade: for d in deltas_per_trade:
for d in deltas:
delta += d delta += d
if delta > max_delta: if delta > max_delta:
max_delta = delta max_delta = delta