From 0c04bdb0ee61ce8c4665537816b43a3ab430f529 Mon Sep 17 00:00:00 2001 From: Joseph O'Brien <98370624+89jobrien@users.noreply.github.com> Date: Wed, 3 Dec 2025 03:15:23 -0500 Subject: [PATCH] perf: replace iterrows() with vectorized operations in y_finance.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace slow iterrows() loop with vectorized pandas operations using apply() and dict(zip()) for better performance when building indicator result dictionaries. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- tradingagents/dataflows/y_finance.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/tradingagents/dataflows/y_finance.py b/tradingagents/dataflows/y_finance.py index a8ab7e8d..6b4bec7e 100644 --- a/tradingagents/dataflows/y_finance.py +++ b/tradingagents/dataflows/y_finance.py @@ -235,15 +235,8 @@ def _get_stock_stats_bulk( df[indicator] - result_dict = {} - for _, row in df.iterrows(): - date_str = row["Date"] - indicator_value = row[indicator] - - if pd.isna(indicator_value): - result_dict[date_str] = "N/A" - else: - result_dict[date_str] = str(indicator_value) + indicator_series = df[indicator].apply(lambda x: "N/A" if pd.isna(x) else str(x)) + result_dict = dict(zip(df["Date"], indicator_series)) return result_dict