Search code examples
pythonpandasdataframequandl

How to get one data frame from below code


Trying to get from different timeseries, from quandl, one single dataframe.

Trying with for loop get data from thre different quandl timeseries. Getting so far this:

             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)

Expected result is to have after for loop one single dataframe like that:

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


Solution

  • In loop append each DataFrame to list, join together by concat with parameter key, then DataFrame.swaplevel and DataFrame.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