我正在尝试将多个股票代码数据帧导入到 PowerBi,但我找不到使用股票代码名称创建变量的方法。
这是我的代码:
import time
import pandas as pd
from datetime import date
tickers = ['ATVI', 'AMD', 'ABNB','AIR','GOOGL','AMZN','AAPL','ERT.BE','EQIX','INTC','JPM','LPL','MC.PA','MSFT','NVDA','PKX','SSUN.BE','SFT.BE','SONY','SPOT','TSM','TSLA','HO.PA','UBI.PA','UBS','DIS']
dataset = {}
today = int(time.mktime((date.today()).timetuple()))
for ticker in tickers:
df = pd.read_csv(f'https://query1.finance.yahoo.com/v7/finance/download/{ticker}?period1=1670371200&period2={today}&interval=1d&events=history&includeAdjustedClose=true')
df['ticker'] = ticker
df['evolution'] = df['Close'] - df['Close'].shift(1)
df['percentage'] = ((df['Close'] - df['Close'].shift(1))/df['Close'])*100
dataset[ticker] = pd.DataFrame(df)
ticker = dataset[ticker]
理想情况下,将其导入 PowerBi 时,每个列表值都会有一个单独的数据帧,例如:ATVI、DIS、NVDA...
提前感谢您的帮助
可能会为每个股票代码创建单独的数据框,然后将它们导入 Power BI。 一种方法是修改代码来创建数据帧字典,其中每个键是股票代码,值是相应的数据帧:
import time
import pandas as pd
from datetime import date
tickers = ['ATVI', 'AMD', 'ABNB','AIR','GOOGL','AMZN','AAPL','ERT.BE','EQIX','INTC','JPM','LPL','MC.PA','MSFT','NVDA','PKX','SSUN.BE','SFT.BE','SONY','SPOT','TSM','TSLA','HO.PA','UBI.PA','UBS','DIS']
dataset = {}
today = int(time.mktime((date.today()).timetuple()))
for ticker in tickers:
df = pd.read_csv(f'https://query1.finance.yahoo.com/v7/finance/download/{ticker}?period1=1670371200&period2={today}&interval=1d&events=history&includeAdjustedClose=true')
df['ticker'] = ticker
df['evolution'] = df['Close'] - df['Close'].shift(1)
df['percentage'] = ((df['Close'] - df['Close'].shift(1))/df['Close'])*100
dataset[ticker] = df
# 'dataset' is a dictionary where each key is a ticker symbol and the value is the corresponding dataframe.
# export these dataframes to separate CSV files or use them directly in Power BI.
# Ex: Exporting each dataframe to a CSV file
for ticker, df in dataset.items():
df.to_csv(f'{ticker}_data.csv', index=False)
将每个数据帧存储在数据集字典中,并以股票代码为键。然后,您可以将每个数据帧导出到单独的 CSV 文件或直接使用它们。 将数据导入 Power BI 时,您也可以单独导入这些 CSV 文件。