Python 辞書を Pandas DataFrame に変換する方法

Asad Riaz 2023年1月30日 Pandas Pandas DataFrame
  1. dictionary を Pandas DataFame に変換するメソッド
  2. Pandas DataFrameキーに、の値に変換するメソッド
  3. dictDataFrame に変換する pandas.DataFrame().from_dict() メソッド
Python 辞書を Pandas DataFrame に変換する方法

Python の dictionary を Pandas の datafarme に変換する方法と、keyscolumns に、valuesrow の値にするようなオプションを紹介します。ネストされた dictionaryDataFrame に変換することもできます。

また、pandas.DataFrame.from_dict を使用した別のアプローチを紹介します。これを任意の rename メソッドとチェーンして、インデックスと列の名前を一度に設定します。

dictionary を Pandas DataFame に変換するメソッド

Pandas の DataFrame コンストラクターpd.DataFrame() は、辞書自体ではなく、コンストラクターの引数として辞書の items が指定されている場合、辞書を DataFrame に変換します。

# python 3.x import pandas as pd  fruit_dict = {3: "apple", 2: "banana", 6: "mango", 4: "apricot", 1: "kiwi", 8: "orange"}  print(pd.DataFrame(list(fruit_dict.items()), columns=["Quantity", "FruitName"])) 

辞書の keysvaluesDataFrame の 2つの列に変換され、オプション columns で指定された列名が付けられます。

 Quantity FruitName 0 3 apple 1 2 banana 2 6 mango 3 4 apricot 4 1 kiwi 5 8 orange 

Pandas DataFrameキーに、の値に変換するメソッド

次のように、辞書を角括弧で囲み、上記のコードから列名を削除するだけです。

import pandas as pd  fruit_dict = {1: "apple", 2: "banana", 3: "mango", 4: "apricot", 5: "kiwi", 6: "orange"}  print(pd.DataFrame([fruit_dict])) 

出力:

 1 2 3 4 5 6 0 apple banana mango apricot kiwi orange 

Pandas の 辞書内包concat を使用してすべての辞書を組み合わせ、リストを渡して新しい列名を指定します

次のコードを考えてください、

import pandas as pd  data = {"1": {"apple": 11, "banana": 18}, "2": {"apple": 16, "banana": 12}} df = pd.concat({k: pd.Series(v) for k, v in data.items()}).reset_index() df.columns = ["dict_index", "name", "quantity"] print(df) 

出力:

 dict_index name quantity 0 1 apple 11 1 1 banana 18 2 2 apple 16 3 2 banana 12 

dictDataFrame に変換する pandas.DataFrame().from_dict() メソッド

from_dict を使用して dictDataFrame に変換します。ここでは、ディクショナリキーを行として使用し、rename() メソッドを適用して列名を変更するために orient='index'を設定します。

次のコードについて考えます。

import pandas as pd  print(  pd.DataFrame.from_dict(  {"apple": 3, "banana": 5, "mango": 7, "apricot": 1, "kiwi": 8, "orange": 3},  orient="index",  ).rename(columns={0: "Qunatity"}) ) 

出力:

 Quantity apple 3 banana 5 mango 7 apricot 1 kiwi 8 orange 3 
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe

関連記事 - Pandas DataFrame