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

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

  1. タプルのリストを辞書に変換するPythonプログラム

    ここで1つのタプルが与えられます。私たちのタスクは、タプルを辞書に変換することです。この問題を解決するために、辞書メソッドsetdefault()を使用します。このメソッドには2つのパラメーターがあり、最初のパラメーターをキーに変換し、2番目のパラメーターを辞書の値に変換します。 Setdefault(key、value)は、キーを検索してその値を表示する関数です。 例 Input: [(Adwaita, 5), (Aadrika, 5), (Babai, 37), (Mona, 7), (Sanj, 25), (Sakya, 30)] Output: {Adwaita: 5

  2. 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 =