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

問題 32 /40

次のテキストをDataFrameにする場合、【A】【B】【C】に入れる組み合わせとして、正しいものはどれか。 sample.txt ------------------------------- 吾輩は猫である。 名前はまだない。 どこで生まれたか見当がつかぬ。 ------------------------------- result = 【A】 with open('sample.txt') as f: for line in f: data = 【B】 data['org'] = line data['length'] = len(line) result.append(data) df = pd.【C】(result) ▶︎

選択 1

【A】[] 【B】{} 【C】DataFrame

選択 2

【A】{} 【B】[] 【C】DataFrame

選択 3

【A】[] 【B】{} 【C】DictFrame

選択 4

【A】{} 【B】[] 【C】DictFrame

解説

選択肢1が正解です。 sample.txt ------------------------------- 吾輩は猫である。 名前はまだない。 どこで生まれたか見当がつかぬ。 ------------------------------- pd.DataFrameに、辞書を要素として持つリストを渡すと、辞書のキーをカラム名にしたDataFrameを作成できます。 ------------------------------- result = [] # 空のリストを作成します。 with open('sample.txt') as f: # open関数でテキストを改行区切りで読み込みます。 for line in f: # テキストを一行ずつ処理します。 data = {} # 空の辞書を作成します。 data['org'] = line # orgをキー、テキストの一行を値にして辞書に追加します。 data['length'] = len(line) # lengthをキー、文字数を値にして辞書に追加します。 result.append(data) # 辞書をリストに追加します。 df = pd.DataFrame(result) # 辞書を要素にしたリストをDataFrameにします。 ------------------------------- data(for文1回目) ▶︎ {'org': '吾輩は猫である。\n', 'length': 9} data(for文2回目) ▶︎ {'org': '名前はまだない。 \n', 'length': 10} data(for文3回目) ▶︎ {'org': 'どこで生まれたか見当がつかぬ。', 'length': 15} result ▶︎ [{'org': '吾輩は猫である。\n', 'length': 9}, {'org': '名前はまだない。 \n', 'length': 10}, {'org': 'どこで生まれたか見当がつかぬ。', 'length': 15}] df = pd.DataFrame(result) ▶︎ 一行目と二行目は末尾に改行があるため\nがつきますが、三行目は改行がないため\nはつきません。 (公式書籍 p.236-237)