「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Pandas はネストされた JSON オブジェクトをどのように処理しますか?

Pandas はネストされた JSON オブジェクトをどのように処理しますか?

2024 年 11 月 7 日に公開
ブラウズ:115

How Do Pandas Handle Nested JSON Objects?

Pandas でネストされた JSON オブジェクトを処理する方法

この記事では、Pandas を使用してネストされたオブジェクトを含む JSON データ構造を効果的に操作する方法を検討します。

ネストされた JSON 構造

次の 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": ""
        }
    ]
}

json_normalize

pandas の json_normalize 関数を使用して平坦化すると、ネストされたオブジェクトを表形式に平坦化できます:

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_')

これにより、ネストされた「locations」オブジェクト内の各キーの列を含む DataFrame が作成されます。

フラット化を行わないグループ化

フラット化が行われない場合必要に応じて、Pandas のグループ化および連結機能を使用できます:

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()

このアプローチでは、「場所」が連結されます。 " 値は、「日付」、「名前」、および「番号」の一意の組み合わせごとにカンマ区切りの文字列として表示されます。

結論

pandas の json_normalize とグループ化/連結機能を利用することで、ネストされた JSON 構造を効果的に処理できるため、表形式でデータを抽出して操作できるようになります。

リリースステートメント この記事は次の場所に転載されています: 1729739820 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3