如何从下面的代码中获取一个数据帧

时间:2019-04-07 08:18:11

标签: python pandas dataframe quandl

尝试从quandl中获得不同的时间序列,即一个数据帧。

尝试使用for循环从三个不同的时间序列中获取数据。 到目前为止:

             Open   High    Low  Close
Date
2019-04-05  145.0  145.0  138.0  140.2
             Open   High    Low  Close
Date
2019-04-05  41.29  41.59  41.03  41.05
             Open   High   Low  Close
Date
2019-04-05  12.04  12.08  11.9   11.9
import quandl
import pandas as pd

tickers=['WSE/AMICA','WSE/PZU','WSE/WIELTON']
notowania=[]

for ticker in tickers:
    raw_notowania = quandl.get(ticker, authtoken="mytoken", rows=1)[['Open', 'High','Low', 'Close']]
    print(raw_notowania)

预期的结果是在for循环之后有一个像这样的单个数据帧:

                 Open   High    Low  Close
     |  ticker1|
date |  ticker2|
     |  ticker3|

1 个答案:

答案 0 :(得分:0)

在循环中,将每个DataFrame附加到list,并由concat与参数key,然后分别由DataFrame.swaplevelDataFrame.sort_index连接起来:

tickers=['WSE/AMICA','WSE/PZU','WSE/WIELTON']

notowania=[]

for ticker in tickers:
    raw_notowania=quandl.get(ticker,authtoken="mytoken",rows=1)[['Open','High','Low','Close']]
    notowania.append(raw_notowania)

df = pd.concat(notowania, keys=tickers).swaplevel().sort_index(level=0)
print (df)
                          Open    High     Low   Close
2019-04-05 WSE/AMICA    145.00  145.00  138.00  140.20
           WSE/PZU       41.29   41.59   41.03   41.05
           WSE/WIELTON   12.04   12.08   11.90   11.90