Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonPandas-ネストされた辞書をマルチインデックスデータフレームに変換


まず、ネストされた辞書を作成しましょう-

dictNested = {'Cricket': {'Boards': ['BCCI', 'CA', 'ECB'],'Country': ['India', 'Australia', 'England']},'Football': {'Boards': ['TFA', 'TCSA', 'GFA'],'Country': ['England', 'Canada', 'Germany']
   }}

次に、空の辞書を作成します-

new_dict = {}

ここで、ループして値を割り当てます-

for outerKey, innerDict in dictNested.items():
   for innerKey, values in innerDict.items():
      new_dict[(outerKey, innerKey)] = values

マルチインデックスデータフレームに変換-

pd.DataFrame(new_dict)

以下はコードです-

import pandas as pd

# Create Nested dictionary
dictNested = {'Cricket': {'Boards': ['BCCI', 'CA', 'ECB'],'Country': ['India', 'Australia', 'England']},'Football': {'Boards': ['TFA', 'TCSA', 'GFA'],'Country': ['England', 'Canada', 'Germany']
   }}

print"\nNested Dictionary...\n",dictNested

new_dict = {}
for outerKey, innerDict in dictNested.items():
   for innerKey, values in innerDict.items():
      new_dict[(outerKey, innerKey)] = values

# converting to multiindex dataframe
print"\nMulti-index DataFrame...\n",pd.DataFrame(new_dict)

出力

これにより、次の出力が生成されます-

Nested Dictionary...
{'Cricket': {'Country': ['India', 'Australia', 'England'], 'Boards': ['BCCI', 'CA', 'ECB']}, 'Football': {'Country': ['England', 'Canada', 'Germany'], 'Boards': ['TFA', 'TCSA', 'GFA']}}

Multi-index DataFrame...
   Cricket             Football
   Boards   Country   Boards Country
0    BCCI     India      TFA England
1      CA Australia     TCSA  Canada
2     ECB   England      GFA Germany

  1. Pythonで辞書をタプルのリストに変換する

    あるコレクションタイプから別のコレクションタイプへの変換は、Pythonでは非常に一般的です。データ処理のニーズによっては、ディクショナリに存在するキーと値のペアを、リスト内のタプルを表すペアに変換する必要がある場合があります。この記事では、これを実現するためのアプローチについて説明します。 内で これは単純なアプローチであり、を検討するだけです。 例 Adict = {30:'Mon',11:'Tue',19:'Fri'} # Given dictionary print("The given dictionary: "

  2. スプレッドシートをPython辞書に変換する方法は?

    スプレッドシートをPython辞書に変換する最も簡単な方法は、パンダなどの外部ライブラリを使用することです。これは、Excelオブジェクトのto_dictのような非常に便利な機能を提供します。これらは次のように使用できます- 例 from pandas import * xls = ExcelFile('my_file.xls') data = xls.parse(xls.sheet_names[0]) print(data.to_dict()) 出力 これにより、出力が得られます- {'id': 10, 'name': "John&