pandas.DataFrame.from_dictの基本的な使い方
PandasのDataFrame.from_dict
メソッドは、Pythonの辞書からPandasのデータフレームを作成するための便利なツールです。以下に基本的な使い方を示します。
import pandas as pd
# 辞書を作成します
data = {
'Name': ['John', 'Anna', 'Peter'],
'Age': [28, 24, 35],
'City': ['New York', 'Paris', 'Berlin']
}
# 辞書からデータフレームを作成します
df = pd.DataFrame.from_dict(data)
print(df)
このコードを実行すると、以下のようなデータフレームが出力されます。
Name Age City
0 John 28 New York
1 Anna 24 Paris
2 Peter 35 Berlin
この例では、辞書の各キーがデータフレームの列名に、対応する値がその列のデータになります。この動作はDataFrame.from_dict
メソッドのorient
パラメータがデフォルトの'columns'
に設定されているためです。このパラメータを'index'
に設定すると、辞書のキーが行名になります。これについては後述します。
辞書のキーを行としてデータフレームを作成する
DataFrame.from_dict
メソッドのorient
パラメータを'index'
に設定すると、辞書のキーを行としてデータフレームを作成することができます。以下にその使い方を示します。
import pandas as pd
# 辞書を作成します
data = {
'John': ['New York', 28],
'Anna': ['Paris', 24],
'Peter': ['Berlin', 35]
}
# 辞書からデータフレームを作成します
df = pd.DataFrame.from_dict(data, orient='index', columns=['City', 'Age'])
print(df)
このコードを実行すると、以下のようなデータフレームが出力されます。
City Age
John New York 28
Anna Paris 24
Peter Berlin 35
この例では、辞書の各キーがデータフレームの行名に、対応する値がその行のデータになります。この動作はorient
パラメータが'index'
に設定されているためです。この方法を使うと、辞書のキーを行として扱いたい場合に便利です。ただし、辞書の各値は同じ長さでなければならないことに注意してください。それぞれの値が異なる長さのリストである場合、エラーが発生します。また、columns
パラメータを使用して、各列の名前を指定することもできます。これにより、データフレームの列名を自由に設定することが可能になります。このパラメータを省略した場合、列名は整数のインデックスになります。このパラメータについては後述します。
辞書のキーを列としてデータフレームを作成する
DataFrame.from_dict
メソッドのorient
パラメータを'columns'
(デフォルト)に設定すると、辞書のキーを列としてデータフレームを作成することができます。以下にその使い方を示します。
import pandas as pd
# 辞書を作成します
data = {
'John': ['New York', 28],
'Anna': ['Paris', 24],
'Peter': ['Berlin', 35]
}
# 辞書からデータフレームを作成します
df = pd.DataFrame.from_dict(data, orient='columns')
print(df)
このコードを実行すると、以下のようなデータフレームが出力されます。
John Anna Peter
0 New York Paris Berlin
1 28 24 35
この例では、辞書の各キーがデータフレームの列名に、対応する値がその列のデータになります。この動作はorient
パラメータが'columns'
に設定されているためです。この方法を使うと、辞書のキーを列として扱いたい場合に便利です。ただし、辞書の各値は同じ長さでなければならないことに注意してください。それぞれの値が異なる長さのリストである場合、エラーが発生します。また、columns
パラメータを使用して、各列の名前を指定することもできます。これにより、データフレームの列名を自由に設定することが可能になります。このパラメータを省略した場合、列名は整数のインデックスになります。このパラメータについては後述します。
orientパラメータの使用方法
PandasのDataFrame.from_dict
メソッドにはorient
というパラメータがあります。このパラメータは、辞書のキーをデータフレームの行として扱うか、列として扱うかを制御します。orient
パラメータはデフォルトで'columns'
に設定されており、これは辞書のキーを列として扱います。
import pandas as pd
# 辞書を作成します
data = {
'Name': ['John', 'Anna', 'Peter'],
'Age': [28, 24, 35],
'City': ['New York', 'Paris', 'Berlin']
}
# 辞書からデータフレームを作成します
df = pd.DataFrame.from_dict(data)
print(df)
このコードを実行すると、以下のようなデータフレームが出力されます。
Name Age City
0 John 28 New York
1 Anna 24 Paris
2 Peter 35 Berlin
一方、orient
パラメータを'index'
に設定すると、辞書のキーを行として扱います。
import pandas as pd
# 辞書を作成します
data = {
'John': ['New York', 28],
'Anna': ['Paris', 24],
'Peter': ['Berlin', 35]
}
# 辞書からデータフレームを作成します
df = pd.DataFrame.from_dict(data, orient='index', columns=['City', 'Age'])
print(df)
このコードを実行すると、以下のようなデータフレームが出力されます。
City Age
John New York 28
Anna Paris 24
Peter Berlin 35
このように、orient
パラメータを使うことで、辞書からデータフレームを作成する際の行と列の扱い方を柔軟に変更することができます。ただし、辞書の各値は同じ長さでなければならないことに注意してください。それぞれの値が異なる長さのリストである場合、エラーが発生します。また、columns
パラメータを使用して、各列の名前を指定することもできます。これにより、データフレームの列名を自由に設定することが可能になります。このパラメータを省略した場合、列名は整数のインデックスになります。このパラメータについては後述します。
実用的な例とその解説
ここでは、DataFrame.from_dict
メソッドを使用して、実際のデータ分析タスクで役立つようなデータフレームを作成する例を示します。
import pandas as pd
# 辞書を作成します
data = {
'John': {'City': 'New York', 'Age': 28, 'Occupation': 'Engineer'},
'Anna': {'City': 'Paris', 'Age': 24, 'Occupation': 'Artist'},
'Peter': {'City': 'Berlin', 'Age': 35, 'Occupation': 'Doctor'}
}
# 辞書からデータフレームを作成します
df = pd.DataFrame.from_dict(data, orient='index')
print(df)
このコードを実行すると、以下のようなデータフレームが出力されます。
City Age Occupation
John New York 28 Engineer
Anna Paris 24 Artist
Peter Berlin 35 Doctor
この例では、辞書の各キー(John、Anna、Peter)がデータフレームの行名になり、各値(それぞれの人物の情報を含む辞書)がその行のデータになります。このように、DataFrame.from_dict
メソッドを使用すると、Pythonの辞書から簡単にPandasのデータフレームを作成することができます。これは、データ分析や機械学習のタスクで非常に便利です。
また、この例では辞書の値が辞書であるため、orient
パラメータを'index'
に設定しています。これにより、各人物の情報が適切な行に配置されます。このように、DataFrame.from_dict
メソッドは、辞書の構造とデータフレームの必要な形状に基づいて、orient
パラメータを適切に設定することで、非常に柔軟なデータフレームの作成が可能です。ただし、辞書の各値は同じ長さでなければならないことに注意してください。それぞれの値が異なる長さのリストである場合、エラーが発生します。また、columns
パラメータを使用して、各列の名前を指定することもできます。これにより、データフレームの列名を自由に設定することが可能になります。このパラメータを省略した場合、列名は整数のインデックスになります。このパラメータについては後述します。