存储在同一变量中的多个dataframe的并集



我通过MetaTrader 5模块的一个循环导入了一些股票的信息。

import MetaTrader5 as mt5  

tickers = ['Apple', 'Amazon', 'Facebook', 'Microsoft'] 
results = {}
for ticker in tickers:
results[ticker] = mt5.copy_rates_range(ticker, mt5.TIMEFRAME_M1, inicio, fin)
results[ticker] = pd.DataFrame(results[ticker]).set_index('time')

数据已存储在结果[ticker]中。例如,当ticker = 'Apple'

results['Apple']
{'Apple':               open    high     low   close  tick_volume  spread  real_volume
time                                                                        
1606149300  117.33  117.55  117.31  117.47          126      12            0
1606149360  117.48  117.54  117.31  117.39          134      12            0
1606149420  117.38  117.54  117.36  117.41           95      12            0
1606149480  117.43  117.47  117.32  117.33           90      12            0
1606149540  117.32  117.33  117.24  117.26          123      12            0
...            ...     ...     ...     ...          ...     ...          ...

当ticker = 'Amazon'

results['Amazon']
open    high    low close   tick_volume spread  real_volume
time                            
1606149300  3114.25 3132.43 3114.25 3131.28 44  429 0
1606149360  3131.28 3133.25 3122.69 3131.52 83  450 0
1606149420  3131.52 3132.12 3122.69 3130.11 61  449 0
1606149480  3127.53 3135.92 3122.69 3127.05 80  448 0
1606149540  3129.77 3135.54 3123.50 3131.98 49  441 0
... ... ... ... ... ... ... ...

我的问题是如何将所有这些表连接到一个单一的DataFrame?例如,单个DataFrame中的每个报价器的'close'列如下面的示例

CLOSE       Apple Amazon Microsoft ETC...
time                            
1606149300  3114.25 3132.43 3114.25 
1606149360  3131.28 3133.25 3122.69 
1606149420  3131.52 3132.12 3122.69 
1606149480  3127.53 3135.92 3122.69 
1606149540  3129.77 3135.54 3123.50 
... ... ... ... ... ... ... ...

提前感谢您的帮助

您可以尝试使用Pandas中的join函数。

merged_df = results[tickers[0]]
for t in tickers[1:]:
merged_df = merged_df.merge(results[t][['close']], left_index=True, right_index=True)

我希望它能解决你的问题!

相关内容

  • 没有找到相关文章

最新更新