この記事では、パンダを使用してネストされたオブジェクトを含む JSON データ構造を効果的に操作する方法を検討します。
次の JSON 構造を考えてみましょう。
<code class="json">{ "number": "", "date": "01.10.2016", "name": "R 3932", "locations": [ { "depTimeDiffMin": "0", "name": "Spital am Pyhrn Bahnhof", "arrTime": "", "depTime": "06:32", "platform": "2", "stationIdx": "0", "arrTimeDiffMin": "", "track": "R 3932" }, { "depTimeDiffMin": "0", "name": "Windischgarsten Bahnhof", "arrTime": "06:37", "depTime": "06:40", "platform": "2", "stationIdx": "1", "arrTimeDiffMin": "1", "track": "" }, { "depTimeDiffMin": "", "name": "Linz/Donau Hbf", "arrTime": "08:24", "depTime": "", "platform": "1A-B", "stationIdx": "22", "arrTimeDiffMin": "1", "track": "" } ] }</code>
pandas の json_normalize 関数により、ネストされたオブジェクトを表形式に平坦化できます。 :
<code class="python">import json with open('myJson.json') as data_file: data = json.load(data_file) df = pd.json_normalize(data, 'locations', ['date', 'number', 'name'], record_prefix='locations_')</code>
これにより、ネストされた「locations」オブジェクト内の各キーの列を含む DataFrame が作成されます。
フラット化が望ましくない場合は、 Pandas のグループ化機能と連結機能を使用できます。
<code class="python">df = pd.read_json("myJson.json") df.locations = pd.DataFrame(df.locations.values.tolist())['name'] df = df.groupby(['date', 'name', 'number'])['locations'].apply(','.join).reset_index()</code>
このアプローチでは、「日付」、「名前」、「番号」の一意の組み合わせごとに、「場所」の値をカンマ区切りの文字列として連結します。 .
pandas の json_normalize 機能とグループ化/連結機能を利用することで、ネストされた JSON 構造を効果的に処理でき、表形式でデータを抽出して操作できるようになります。
以上がPandas はネストされた JSON オブジェクトをどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。