データ分析実践
初級問題チェック

問題 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)