データ分析実践
初級問題チェック
問題 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)
