You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

循环股票代码列表创建对应变量,实现PowerBI导入独立DataFrame

解决PowerBI中创建以股票代码命名的独立DataFrame问题

你当前的代码将所有股票数据存入字典dataset,但循环内的ticker = dataset[ticker]只是创建了循环内的局部变量,不会在全局作用域生成对应名称的DataFrame,所以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']
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
    # 将DataFrame注册到全局命名空间,PowerBI会自动识别这些变量
    globals()[ticker] = df

关键说明

  • 通过globals()[ticker] = df,直接在全局作用域创建以股票代码命名的DataFrame变量,PowerBI运行脚本后会自动检测到所有这些独立数据集
  • 移除了原代码中多余的dataset字典和pd.DataFrame(df)(df本身已是DataFrame类型)
  • 含特殊字符的股票代码(如.BE、.PA)无需额外处理,PowerBI会正常识别对应的变量名
  • 确保PowerBI的Python环境已安装pandas库,否则会出现依赖报错

内容的提问来源于stack exchange,提问作者Maximilien Ollier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 23:25:01