ホームページ >バックエンド開発 >Python チュートリアル >階層インデックスを使用してネストされたディクショナリから Pandas DataFrame を作成する方法
このシナリオでは、階層が以下で構成されるネストされたディクショナリから pandas DataFrame を作成します。 :
目的のデータフレームには、インデックスとしてユーザー ID、列としてカテゴリと属性が含まれている必要があります。
1 つの効率的なアプローチは、パンダの MultiIndex を利用し、マルチレベルのインデックス構造の作成を可能にします。この方法を使用するには:
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'}}} df = 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') print(df) 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')) df = pd.concat(frames, keys=user_ids) print(df) att_1 att_2 12 Category 1 1 whatever Category 2 23 another 15 Category 1 10 foo Category 2 30 bar
以上が階層インデックスを使用してネストされたディクショナリから Pandas DataFrame を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。