Added Stock Tickers to Email

This commit is contained in:
2025-09-21 09:01:11 -04:00
parent 1c577e31fb
commit ddeb46d825

View File

@@ -76,12 +76,20 @@ if 'shrsOrPrnAmt' in latest_df.columns:
latest_df['shrsOrPrnAmt'] = latest_df['shrsOrPrnAmt'].apply(extract_shares)
prev_df['shrsOrPrnAmt'] = prev_df['shrsOrPrnAmt'].apply(extract_shares)
# Verify required columns
# Verify required columns (ticker is optional but we'll add it if present)
required_cols = ['cusip', 'nameOfIssuer', 'shrsOrPrnAmt', 'value']
for col in required_cols:
if col not in latest_df.columns or col not in prev_df.columns:
raise KeyError(f"Column {col} missing in holdings data")
# Add ticker column if present
if 'ticker' in latest_df.columns:
latest_df['ticker'] = latest_df['ticker'].fillna('N/A')
prev_df['ticker'] = prev_df['ticker'].fillna('N/A')
else:
latest_df['ticker'] = 'N/A'
prev_df['ticker'] = 'N/A'
# Format value with commas and dollar sign
latest_df['value_formatted'] = latest_df['value'].apply(lambda x: f"${x:,.0f}")
prev_df['value_formatted'] = prev_df['value'].apply(lambda x: f"${x:,.0f}")
@@ -106,6 +114,11 @@ changes['share_change'] = changes['shrsOrPrnAmt_new'] - changes['shrsOrPrnAmt_ol
changes = changes[changes['share_change'].notna()]
changes = changes[abs(changes['share_change']) / changes['shrsOrPrnAmt_old'].replace(0, 1) > 0.1]
changes['share_change'] = changes['share_change'].apply(lambda x: f"{x:,.0f}")
# Add ticker_new for changes
if 'ticker' in changes.columns:
changes['ticker_new'] = changes['ticker_new'].fillna('N/A')
else:
changes['ticker_new'] = 'N/A'
# HTML table styling
html_style = """
@@ -142,9 +155,9 @@ summary = f"""
<head>{html_style}</head>
<body>
<h2>Point72 13F Changes {prev['periodOfReport']} to {latest['periodOfReport']}</h2>
{df_to_html(additions, ['nameOfIssuer', 'shrsOrPrnAmt', 'value_formatted'], 'Additions')}
{df_to_html(removals, ['nameOfIssuer', 'shrsOrPrnAmt', 'value_formatted'], 'Removals')}
{df_to_html(changes, ['nameOfIssuer_new', 'share_change'], 'Changes')}
{df_to_html(additions, ['nameOfIssuer', 'ticker', 'shrsOrPrnAmt', 'value_formatted'], 'Additions')}
{df_to_html(removals, ['nameOfIssuer', 'ticker', 'shrsOrPrnAmt', 'value_formatted'], 'Removals')}
{df_to_html(changes, ['nameOfIssuer_new', 'ticker_new', 'share_change'], 'Changes')}
</body>
</html>
"""