Python-ネストされた辞書のリストをPandasデータフレームに変換します
多くの場合、Pythonはさまざまなソースからデータを受け取ります。これらのデータはcsv、JSONなどのさまざまな形式で、Pythonリストや辞書などに変換できます。ただし、パンダなどのパッケージを使用して計算や分析を適用するには、このデータを次のように変換する必要があります。データフレーム。この記事では、要素がネストされた辞書である特定のPythonリストをパンダのDatframeに変換する方法を説明します。
まず、ネストされた辞書のリストを取得し、そこからデータの行を抽出します。次に、元々空で作成された新しいリストに行を追加するために、別のforループを作成します。最後に、pandasライブラリのDataFrames関数を適用して、データフレームを作成します。
例
import pandas as pd # Given nested dictionary list = [ { "Fruit": [{"Price": 15.2, "Quality": "A"}, {"Price": 19, "Quality": "B"}, {"Price": 17.8, "Quality": "C"}, ], "Name": "Orange" }, { "Fruit": [{"Price": 23.2, "Quality": "A"}, {"Price": 28, "Quality": "B"} ], "Name": "Grapes" } ] rows = [] # Getting rows for data in list: data_row = data['Fruit'] n = data['Name'] for row in data_row: row['Name'] = n rows.append(row) # Convert to data frame df = pd.DataFrame(rows) print(df)
上記のコードを実行すると、次の結果が得られます-
出力
Price Quality Name 0 15.2 A Orange 1 19.0 B Orange 2 17.8 C Orange 3 23.2 A Grapes 4 28.0 B Grapes
ピボットの適用
また、pivot_table関数を適用して、データを希望どおりに再編成することもできます。
例
import pandas as pd # List of nested dictionary initialization list = [ { "Fruit": [{"Price": 15.2, "Quality": "A"}, {"Price": 19, "Quality": "B"}, {"Price": 17.8, "Quality": "C"}, ], "Name": "Orange" }, { "Fruit": [{"Price": 23.2, "Quality": "A"}, {"Price": 28, "Quality": "B"} ], "Name": "Grapes" } ] #print(list) rows = [] # appending rows for data in list: data_row = data['Fruit'] n = data['Name'] for row in data_row: row['Name'] = n rows.append(row) # using data frame df = pd.DataFrame(rows) df = df.pivot_table(index='Name', columns=['Quality'], values=['Price']).reset_index() print(df)
上記のコードを実行すると、次の結果が得られます-
出力
Name Price Quality A B C 0 Grapes 23.2 28.0 NaN 1 Orange 15.2 19.0 17.8
-
タプルのリストを辞書に変換するPythonプログラム
ここで1つのタプルが与えられます。私たちのタスクは、タプルを辞書に変換することです。この問題を解決するために、辞書メソッドsetdefault()を使用します。このメソッドには2つのパラメーターがあり、最初のパラメーターをキーに変換し、2番目のパラメーターを辞書の値に変換します。 Setdefault(key、value)は、キーを検索してその値を表示する関数です。 例 Input: [(Adwaita, 5), (Aadrika, 5), (Babai, 37), (Mona, 7), (Sanj, 25), (Sakya, 30)] Output: {Adwaita: 5
-
Python辞書をリストに変換する方法は?
Pythonの辞書クラスには、この目的のために3つのメソッドがあります。メソッドitems()、keys()、values()は、それぞれキーと値のペアのタプル、キーのみ、値のみで構成されるビューオブジェクトを返します。組み込みのlistメソッドは、これらのビューオブジェクトをリストオブジェクトに変換します。 >>> d1 = {name: Ravi, age: 23, marks: 56} >>> d1.items() dict_items([(name, Ravi), (age, 23), (marks, 56)]) >>> l1 =