ネストされた JSON ファイルを Pandas DataFrame として読み取る
ネストされたオブジェクトを含む JSON データを操作する場合、それをより多くのデータフレームに変換する必要がある場合があります。分析または操作のための構造化フォーマット。 Pandas は、このようなデータを効率的に処理するための便利なツールを提供します。
シナリオ:
次の構造の JSON ファイルを考えてみましょう:
<code class="json">{ "number": "", "date": "01.10.2016", "name": "R 3932", "locations": [ { ... }, { ... }, { ... } ] }</code>
json_normalize の使用:
json_normalize 関数を使用すると、ネストされた JSON を DataFrame にフラット化できます。指定された JSON に対して、次の操作を実行できます:
<code class="python">import pandas as pd with open('myJson.json') as data_file: data = json.load(data_file) df = pd.json_normalize(data, 'locations', ['date', 'number', 'name'], record_prefix='locations_') print (df)</code>
これにより、次の列を持つ DataFrame が作成されます:
ネストされたデータを保持するための拡張:
ネストされた配列をそのまま保持したい場合は、解析パラメーターを指定して read_json を使用できます。これにより、JSON が解析されて、location 列を辞書のリストとして含む DataFrame が作成されます。
<code class="python">df = pd.read_json("myJson.json", orient='records', parsing = True)</code>
または、コンストラクター パラメーターを使用して、location 列を解析することもできます。
<code class="python">df = pd.read_json("myJson.json", orient='records', constructor=lambda x: pd.DataFrame(x['locations']))</code>
ネストされた値の連結:
location 列の値を 1 つの文字列に結合する場合は、groupby 関数と apply 関数を使用できます:
<code class="python">df = df.groupby(['date', 'name', 'number'])['locations'].apply(','.join).reset_index()</code>
以上がネストされた JSON データを Pandas DataFrame にインポートして処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。