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:
|
if df.empty:
|
||||||
return df
|
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
|
# Remove rows with suspicious values
|
||||||
df = df[
|
df = df[
|
||||||
(df['open'] > 0) &
|
(df['open'] > 0) &
|
||||||
@ -53,8 +60,14 @@ def get_stock_data(ticker: str, start_date: datetime, end_date: datetime, interv
|
|||||||
]
|
]
|
||||||
|
|
||||||
# Sort by date and remove duplicates
|
# 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
|
return df
|
||||||
|
|
||||||
# Calculate proper date range (looking back from today)
|
# Calculate proper date range (looking back from today)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user