fix: Improve stock data validation with explicit type conversion and logging
This commit is contained in:
parent
f7d6d5d136
commit
6af7ce4bcd
@ -39,6 +39,13 @@ def get_stock_data(ticker: str, start_date: datetime, end_date: datetime, interv
|
||||
if df.empty:
|
||||
return df
|
||||
|
||||
# Convert numeric columns to float
|
||||
for col in ['open', 'high', 'low', 'close']:
|
||||
df[col] = pd.to_numeric(df[col], errors='coerce')
|
||||
|
||||
# Remove rows with NaN values
|
||||
df = df.dropna()
|
||||
|
||||
# Remove rows with suspicious values
|
||||
df = df[
|
||||
(df['open'] > 0) &
|
||||
@ -53,7 +60,13 @@ def get_stock_data(ticker: str, start_date: datetime, end_date: datetime, interv
|
||||
]
|
||||
|
||||
# Sort by date and remove duplicates
|
||||
df = df.sort_values('date').drop_duplicates(subset=['date'])
|
||||
df = df.sort_values('date', ascending=True).drop_duplicates(subset=['date'])
|
||||
|
||||
# Add validation message
|
||||
if not df.empty:
|
||||
print(f"Validated price for {ticker}:")
|
||||
print(f"First price: ${df['close'].iloc[0]:.2f}")
|
||||
print(f"Last price: ${df['close'].iloc[-1]:.2f}")
|
||||
|
||||
return df
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user