首页 > 解决方案 > 如何定义多个数据框

问题描述

从 yahoo Finance api,我可以获得 EURUSD 和 AUDUSD 15 分钟的数据,但我想使用 for 循环来定义它们(即 2 个数据帧),以便我可以运行多个 df 的相关性。

理想情况下,

df1=pd.DataFrame(yf.download(tickers = EURUSD ,start=Start_Date, end=End_Date, interval = '15m'))


df2=pd.DataFrame(yf.download(tickers = AUDUSD ,start=Start_Date, end=End_Date, interval = '15m'))

但我需要一个 for 循环来定义这 2 个 df


import numpy as np
import pandas as pd
import yfinance as yf


#"YYYY-MM-DD"
Start_Date= '2021-05-03'
End_Date= '2021-05-04'

list = pd.Series(['EURUSD=X', 'AUDUSD=X'],index=['1','2'])


for i in list:
    
  data = yf.download(tickers = i ,start=Start_Date, end=End_Date, interval = '15m')
  df = pd.DataFrame(data)
  
    
  print(df)

标签: pythonpandasdataframe

解决方案


这样做的一种方法是将两个数据帧存储在一个列表中。

dfList = []

for i in list:
    
  data = yf.download(tickers = i ,start=Start_Date, end=End_Date, interval = '15m')
  df = pd.DataFrame(data)
  dfList.append(df)

或者,您甚至可以使用理解

dfList = [pd.DataFrame(yf.download(tickers = i ,start=Start_Date, end=End_Date, interval = '15m')) 
          for i in list]

现在您可以访问df1asdfList[0]df2asdfList[1]


推荐阅读