Python 辞書を Pandas DataFrame に変換する方法
Asad Riaz
2023年1月30日
-
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