Python 辞書を Pandas DataFrame に変換する方法
Asad Riaz 2023年1月30日 Pandas Pandas DataFrame
-
dictionary
を PandasDataFame
に変換するメソッド - Pandas
DataFrame
でキー
を列
に、値
を行
の値に変換するメソッド -
dict
をDataFrame
に変換するpandas.DataFrame().from_dict()
メソッド

Python の dictionary
を Pandas の datafarme
に変換する方法と、keys
を columns
に、values
を row
の値にするようなオプションを紹介します。ネストされた dictionary
を DataFrame
に変換することもできます。
また、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"]))
辞書の keys
と values
は DataFrame
の 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
dict
を DataFrame
に変換する pandas.DataFrame().from_dict()
メソッド
from_dict
を使用して dict
を DataFrame
に変換します。ここでは、ディクショナリキーを行として使用し、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