Denne del giver return(pdr.get_data_yahoo(ticker, start=startdate, end=enddate)) denne fejl string indices must be integers, jeg ved det er en kendt problem.
Følgende output string indices must be integers Stack trace: > File "C:\Users\peter\OneDrive\Investering\RequestStockData\RequestStockData\RequestStockData.py", line 23, in data (Current frame) > return(pdr.get_data_yahoo(ticker, start=startdate, end=enddate)) > File "C:\Users\peter\OneDrive\Investering\RequestStockData\RequestStockData\RequestStockData.py", line 25, in get > return(pd.concat(datas,keys=tickers,names=['Ticker','Date'])) > File "C:\Users\peter\OneDrive\Investering\RequestStockData\RequestStockData\RequestStockData.py", line 27, in <module> > all_data=get(tickers, datetime.datetime(2023,1,1), datetime.datetime(2023,1,31)) Loaded 'pandas_datareader.yahoo.daily' Loaded 'pandas_datareader.base' Loaded 'pandas_datareader.data' Loaded '__main__' Loaded 'pandas.core.reshape.concat' Loaded 'pandas.util._decorators' Loaded 'runpy' The program 'python.exe' has exited with code -1 (0xffffffff)..:
Det ser ud til, at fejlen skyldes brug af en streng som indeks i stedet for et heltal. Dette kan skyldes, at "ticker" parameteren ikke er et heltal, men i stedet en streng. Det kan også skyldes en fejl i biblioteket, som du bruger til at hente data.
For at bekræfte, at "ticker" parameteren er en streng, kan du tilføje en print-sætning i data-funktionen for at udskrive værdien af "ticker":
Hvis det viser sig, at "ticker" er en streng, kan du muligvis løse problemet ved at konvertere det til et heltal ved hjælp af int() -funktionen.
Hvis problemet stadigvæk er til stede, kan det være en fejl i biblioteket, som du bruger. Du kan prøve at opdatere biblioteket til den nyeste version eller kontakte bibliotekets udviklere for at rapportere problemet.
Jeg tjekkede igennem, der er nok noget gal med pandas installation. Jeg har lavet en lidt anden løsning som virker. Skal lige finpudses lidt, jeg prøvede ChatGPT efter et par forsøg ramte den rigtigt.
import pyodbc import yfinance as yf
# Connect to the Access database conn_str = ( r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};' r'DBQ=C:\Users\peter\OneDrive\Investering\Aktiver_Etoro.accdb;' ) cnxn = pyodbc.connect(conn_str)
# Query the database to retrieve stock data cursor = cnxn.cursor() cursor.execute("SELECT Aktiv.Aktiv_NicNavn FROM Aktiv WHERE Aktiv.Aktiv_RequstStockData=True") tickers = [row[0] for row in cursor.fetchall()]
# Get market data from Yahoo Finance for each ticker for ticker in tickers: MarkedsData = yf.Ticker(ticker) df = MarkedsData.history(interval='1h', period='1d') df['NickName'] = ticker df['Change'] = df['Open'] - df['Close'] df['Pct_Chg'] = df['Change'] / df['Open']
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.