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 =