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

kaztomo日記


2017/10/19 [長年日記]

_ [Python]nested dictionary を展開するのは json_normalize で

色々とググってみたら、nested dictionary を展開するのは json_normalize を使うみたいだ。

もともと入手していたデータは、こんな形式

AAA  BBB  CCC  {key1:{key2:VVV,key3:[1,2,3,4]}}
※スペースのあるところには、実際には Tab になっている。

普通に pandas に取り込んでも 4つのカラムに取り込まれるので、 4番目のカラムに対して json_normalize してみた。

from pandas.io.json import json_normalize

dict = '{key1:{key2:VVV,key3:[1,2,3,4]}}'
json_normalize(dict)

出力結果

key1.key2   key1.key3
VVV         [1,2,3,4]

key を連結していけば対象カラムにアクセスできるので、階層構造を理解した後だとすんなり指定できる(^o^)/

もともと期待していた結果は、"key1.key3" もカラムに展開してもらいたかったけど、 よくよく考えてみると この数値列は後で比較したり演算したりする可能性があるので、 一塊になっていたほうが便利なんじゃないのか、と思い直した。\(^o^)/

後は pandas の連結方法だな


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