トップ «前の日記(2017/10/19) 最新 次の日記(2017/10/23)» 編集

kaztomo日記


2017/10/20 [長年日記]

_ [Python]nested dictionary の Array を読み込むのは大変 (+_+)

ネストされた辞書型の要素を json_normalize で取得できることは解ったけど、 それが複数行の配列になっている状態から DataFrame化したい。

配列(Series) を json_normalize で処理させようとするとエラー (>_<) 入力として受け付けてくれるのは辞書型だけで、辞書型の配列はダメみたいだ。

ググってみたところ、json_normalize -> DataFrame -> concat する手順 を見つけた。

その例に沿って記述してみた。

dict = '{key1:{key2:VVV,key3:[1,2,3,4]}},
        {key1:{key2:WWW,key3:[5,6,7,8]}},
        {key1:{key2:XXX,key3:[9,10,11,12]}}'
new_df = pd.concat( [pd.DataFrame( json_normalize(json.loads(x)) ) for x in dict], ignore_index=True)
print(new_df)

出力結果

key1.key2   key1.key3
VVV         [1,2,3,4]
WWW         [5,6,7,8]
XXX         [9,10,11,12]

希望の結果は得られたけど、実際のデータは 63万行くらいあって、それを読み込むのに 数十分かかった (>_<)

1行ずつ処理しているからなんだろうけど、単に DataFrame 化したいだけなんだから 並列化とかして高速処理できないものだろうか。orz


参考にさせていただいたサイト: