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
参考にさせていただいたサイト: