次の解説を参考にして、JSONファイルをデータ・フレームで読み込む方法を紹介します。 ## II.シンプルなJSONの場合 Pandasのread_jason()で読み込みます。
Pandasのpd.read_jsonで読み込みます。URLでも読み込めます。
import pandas as pd
URL = 'http://raw.githubusercontent.com/BindiChen/machine-learning/master/data-analysis/027-pandas-convert-json/data/simple.json'
df1 = pd.read_json(URL)
df1
## id name math physics chemistry
## 0 A001 Tom 60 66 61
## 1 A002 James 89 76 51
## 2 A003 Jenny 79 90 78
JSONのサンプルは次です。
{"Python": {"\u54c1\u8a5e": "\u540d\u8a5e", "\u65e5\u672c\u8a9e": "\u30d1\u30a4\u30bd\u30f3"}, "Julia": {"\u54c1\u8a5e": "\u540d\u8a5e", "\u65e5\u672c\u8a9e": "\u30b8\u30e5\u30ea\u30a2"}, "data": {"\u54c1\u8a5e": "\u540d\u8a5e", "\u65e5\u672c\u8a9e": "\u30c7\u30fc\u30bf", "\u5909\u5316": {"\u5358\u6570": "datum", "\u8907\u6570": "data"}}}
サンプルをpd.read_jsonで読み込みます。行が用語となるようにたてよこを変換します。
“data”行の“変化”列にdictionariesが置かれています。
import json
df2 = pd.read_json('data/nested.json')
df2.transpose()
## 品詞 日本語 変化
## Python 名詞 パイソン NaN
## Julia 名詞 ジュリア NaN
## data 名詞 データ {'単数': 'datum', '複数': 'data'}
ネストされているdictionariesをフラットにするには、JSONで読み込んでmeta=[]で指定します。
import json
# load data using Python JSON module
with open('data/nested.json','r') as f:
data = json.loads(f.read())
# Flatten data
df3 = pd.json_normalize(data, meta =['変形'])
df3
## Python.品詞 Python.日本語 Julia.品詞 ... data.日本語 data.変化.単数 data.変化.複数
## 0 名詞 パイソン 名詞 ... データ datum data
##
## [1 rows x 8 columns]
To be continued.