データ分析実践
初級問題チェック
問題 6 /40
次の記述でDataFrameを作成した場合、正しい結果はどれか。
import pandas as pd
list = [
{'name': '田中',
'phone': '03-xxxx-xxxx',
'address': '東京都'},
{'name': '鈴木',
'phone': '06-xxxx-xxxx',
'address': '大阪府'}]
df = pd.DataFrame(list)
選択 1

選択 2

選択 3

選択 4
エラーになる
解説
選択肢3が正解です。
pd.DataFrameは、引数を「辞書のリスト」か「リストのリスト」で指定する場合は行指向で、行ごとにデータを指定します。
引数を「値がリストの辞書」で指定する場合は列指向で、列ごとにデータを指定します。
次のように引数を「辞書のリスト」で指定すると、一つの辞書が一行のデータになり、同じ名前のキーが一つのカラムになります。
# 行指向
list = [
{'name': '田中',
'phone': '03-xxxx-xxxx',
'address': '東京都'},
{'name': '鈴木',
'phone': '06-xxxx-xxxx',
'address': '大阪府'}]
df = pd.DataFrame(list)
▶︎
異なる名前のキーがある場合は別のカラムになり、値がないフィールドはNaNになります。
# 行指向
list = [
{'name': '田中',
'phone': '03-xxxx-xxxx',
'address': '東京都'},
{'name': '鈴木',
'phone': '06-xxxx-xxxx',
'mobile': '080-xxxx-xxxx',
'address': '大阪府'}]
df = pd.DataFrame(list)
▶︎
次のように引数を「値がリストの辞書」で指定しても、選択肢3の結果になります。
# 列指向
dic = {
'name': ['田中', '鈴木'],
'phone': ['03-xxxx-xxxx', '06-xxxx-xxxx'],
'address': ['東京都', '大阪府']}
df = pd.DataFrame(dic)
▶︎
なお、選択肢1は次の記述で作成したDataFrameです。
# 行指向
df = pd.DataFrame(
[['田中', '鈴木'],
['03-xxxx-xxxx', '06-xxxx-xxxx'],
['東京都', '大阪府']],
index=['name', 'phone', 'address'])
▶︎
選択肢2は次の記述で作成したDataFrameです。
# 行指向
df = pd.DataFrame(
[['name', '田中', '鈴木'],
['phone', '03-xxxx-xxxx', '06-xxxx-xxxx'],
['address', '東京都', '大阪府']])
▶︎
(公式書籍 p.41)




