Код: Выделить всё
import yfinance as yf
import duckdb
import pandas as pd
from datetime import datetime, timedelta
# Download data
data = yf.download('AAPL', start='2024-01-01', rounding=True)
data.reset_index(inplace=True)
# Set Date column as a date without the time component
data['Date'] = data['Date'].dt.date
# Rename the 'Adj Close' column to 'Adj_Close'
data.rename(columns={'Adj Close': 'Adj_Close'}, inplace=True)
# Database connection path for DuckDB
db_path = "SPY.duckdb"
conn = duckdb.connect(db_path)
symbol = "SPY"
# Create table
create_table_query = f"""
CREATE TABLE IF NOT EXISTS {symbol} (
Date DATE UNIQUE,
Open FLOAT,
High FLOAT,
Low FLOAT,
Close FLOAT,
Adj_Close FLOAT,
Volume BIGINT
);
"""
conn.execute(create_table_query)
# Insert data into DuckDB with explicit casting of Date column
conn.execute(f"INSERT INTO {symbol} SELECT CAST(Date AS DATE), Open, High, Low, Close, Adj_Close, Volume FROM data")
Подробнее здесь: https://stackoverflow.com/questions/791 ... -also-time