ホームページ > バックエンド開発 > Python チュートリアル > ネストされた辞書から階層インデックスを使用して Pandas DataFrame を作成する方法

ネストされた辞書から階層インデックスを使用して Pandas DataFrame を作成する方法

Barbara Streisand
リリース: 2024-11-30 17:25:13
オリジナル
524 人が閲覧しました

How to Create a Pandas DataFrame with Hierarchical Indexing from a Nested Dictionary?

階層インデックスを使用したネストされた辞書値からの Pandas DataFrame の構築

最初のレベルのキーが UserIds を表す、ネストされた辞書 user_dict を考えます。第 2 レベルのキーはカテゴリ、第 3 レベルのキーはさまざまな属性です。目標は、第 3 レベルの値を使用して階層インデックスを持つ pandas DataFrame を構築することです。

これを達成するには、辞書のキーを階層インデックスを表すタプルに再形成する必要があります。 pd.DataFrame.from_dict を使用すると、正しいインデックス構造を持つ DataFrame を作成できます:

user_dict = {12: {'Category 1': {'att_1': 1, 'att_2': 'whatever'},
                  'Category 2': {'att_1': 23, 'att_2': 'another'}},
             15: {'Category 1': {'att_1': 10, 'att_2': 'foo'},
                  'Category 2': {'att_1': 30, 'att_2': 'bar'}}}

pd.DataFrame.from_dict({(i,j): user_dict[i][j] 
                           for i in user_dict.keys() 
                           for j in user_dict[i].keys()},
                       orient='index')


               att_1     att_2
12 Category 1      1  whatever
   Category 2     23   another
15 Category 1     10       foo
   Category 2     30       bar
ログイン後にコピー

別のアプローチには、各辞書エントリから作成された個々の DataFrame を連結することが含まれます:

user_ids = []
frames = []

for user_id, d in user_dict.iteritems():
    user_ids.append(user_id)
    frames.append(pd.DataFrame.from_dict(d, orient='index'))

pd.concat(frames, keys=user_ids)

               att_1     att_2
12 Category 1      1  whatever
   Category 2     23   another
15 Category 1     10       foo
   Category 2     30       bar
ログイン後にコピー

両方メソッドは、ネストされた辞書の 3 番目のレベルの値を使用して、階層インデックスを持つ DataFrame を効果的に構築します。

以上がネストされた辞書から階層インデックスを使用して Pandas DataFrame を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート