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

如何在For循环中将变量作为DataFrame列,关联交易对与收盘价

问题描述

需要将交易对列表中的变量添加到通过追加生成的Pandas DataFrame中,使每组收盘价数据对应到所属交易对。现有代码、当前输出及期望输出如下:

现有代码

symbol = ['EURUSD','USDJPY','USDCHF','USDCAD']
timeframe = mt.TIMEFRAME_M1
date_from = datetime(2023,10,27,16,55)
date_to = datetime.now()

price = []

for i in symbol:
    data = mt.copy_rates_range(i,timeframe,date_from,date_to)
    price.append(data['close'])
    prices = pd.DataFrame(price)

prices

当前输出

0          1          2          3
0    1.05644    1.05654    1.05644    1.05640
1  149.63200  149.60200  149.58400  149.60400
2    0.90209    0.90217    0.90219    0.90238
3    1.38740    1.38726    1.38732    1.38729

期望输出

PAIR          0          1          2          3
0  EURUSD    1.05644    1.05654    1.05644    1.05640
1  USDJPY  149.63200  149.60200  149.58400  149.60400
2  USDCHF    0.90209    0.90217    0.90219    0.90238
3  USDCAD    1.38740    1.38726    1.38732    1.38729

已尝试concat方法和+运算符,未解决问题。

解决方案

提供两种简单实现方式,直接实现交易对与收盘价的对应绑定:

方式一:字典构建法

直接用字典存储交易对和对应收盘价数据,再转换为DataFrame:

symbol = ['EURUSD','USDJPY','USDCHF','USDCAD']
timeframe = mt.TIMEFRAME_M1
date_from = datetime(2023,10,27,16,55)
date_to = datetime.now()

price_data = []
for pair in symbol:
    data = mt.copy_rates_range(pair, timeframe, date_from, date_to)
    # 将交易对和收盘价序列打包为字典
    price_data.append({'PAIR': pair, **dict(enumerate(data['close']))})

prices = pd.DataFrame(price_data)
prices

方式二:插入列法

基于原代码逻辑,先生成收盘价DataFrame,再插入交易对列:

symbol = ['EURUSD','USDJPY','USDCHF','USDCAD']
timeframe = mt.TIMEFRAME_M1
date_from = datetime(2023,10,27,16,55)
date_to = datetime.now()

price = []
for i in symbol:
    data = mt.copy_rates_range(i,timeframe,date_from,date_to)
    price.append(data['close'])

prices = pd.DataFrame(price)
# 在第0位插入PAIR列,值为交易对列表
prices.insert(0, 'PAIR', symbol)
prices

说明

  • 方式一通过字典直接绑定交易对与对应数据,转换为DataFrame后自动匹配列顺序;
  • 方式二更贴近原代码逻辑,利用交易对列表与收盘价列表的顺序一致性,直接插入列即可完成对应。

内容的提问来源于stack exchange,提问作者Sioux Gougui

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 14:06:23