2

JSON に変換した REST 呼び出しからの出力があります。

これは辞書とリストの高度にネストされたコレクションですが、最終的には次のようにデータフレームに変換できます。

import panads as pd
from requests import get 

url = 'http://stats.oecd.org/SDMX-JSON/data/MEI_FIN/IR3TIB.GBR+USA.M/all'
params = { 
        'startTime' : '2008-06',
        'dimensionAtObservation' : 'TimeDimension'
        }

r = get(url, params = params)
x = r.json()

d = x['dataSets'][0]['series']
a = pd.DataFrame(d['0:0:0']['observations'])
b = pd.DataFrame(d['0:1:0']['observations'])

これは、作業を容易にするための操作がなくても機能し、複数の時系列があるため、それぞれに対して同じバージョンを実行できますが、言うまでもなく、扱いにくいです。

これを行うためのより良い/よりクリーンな方法はありますか。

4

2 に答える 2

1

応答がない場合、これが私が思いついた解決策です。各シリーズをデータフレームに取り込むためのリスト内包表記を追加し、このソースとしての転置により、シリーズが下の列ではなく行全体に配置されました。

import panads as pd
from requests import get 

url = 'http://stats.oecd.org/SDMX-JSON/data/MEI_FIN/IR3TIB.GBR+USA.M/all'
params = { 
        'startTime' : '2008-06',
        'dimensionAtObservation' : 'TimeDimension'
        }

r = get(url, params = params)
x = r.json()

d = x['dataSets'][0]['series']
df = [pd.DataFrame(d[i]['observations']).loc[0] for i in d]
df = pd.DataFrame(df).T
于 2019-07-06T06:36:03.703 に答える