本問題では「pandas」のうち「DataFrameの生成、データの抽出(locメソッドとilocメソッド)」について学びます。
本問題の解説はYouTube動画でもご覧いただけます。
【解説動画】 第1回Python3データ分析模擬試験 第20問
※当解説動画シリーズはPythonエンジニア育成推進協会に認定された「Python 3 エンジニア認定データ分析試験」の参考教材です。
問題
次のスクリプトを実行して10を出力させたい。[ア]に入るものの説明として正しいものはどれか。
import pandas as pd
df = pd.DataFrame([[15, “a”, True],[20, “b”, False],[10, “c”, False]])
df.index = [“01”, “02”, “03”]
df.columns = [“A”, “B”, “C”]
[ア]
print(a)
① a = df.iloc[“A”, “03”] または a = df.loc[0, 2]
② a = df.iloc[“A”, “03”] または a = df.loc[3, 1]
③ a = df.loc[“03”, “A”] または a = df.iloc[2, 0]
④ a = df.loc[“03”, “A”] または a = df.iloc[3, 1]
⑤ a = df[“A”, “03”]
解説
正解は選択肢③です。以下、解説します。
DataFrameの確認
まずコードを確認します。
右のコード中、[ア]の手前まで(青枠内)で、DataFrameが作られています。
出力すると、右のようなデータ構造を確認できます。
右図は、先ほどのDataFrameをわかりやすく表現したものです。これをもとに、コードを確認していきます。
コードの確認
まずpandasをインポートします。
3×3のDataFrameを作ります。
df.indexに、行の名前(任意の数字)を指定します。
df.columnsに、列の名前(任意の文字列)を指定します。
ところで本問で抽出したいのは、数字の「10」(先ほどのDataFrame上の赤枠内)です。
10を抽出するためのメソッドとして、本問の各選択肢ではlocとilocが使われています。
locとilocの使い方の違いは、行と列を名前で指定するのがloc、番号で指定するのがilocです。
このDataFrameで、10をlocで抽出するなら、行列ともに名前(「03」と「A」)で指定します。ilocで抽出するなら数字(「2」と「0」)で指定します。
行列を、locで指定したコードの実行結果は右の通りです。
ilocで指定したコードの実行結果は右の通りです。
どちらも同様に10を抽出できることがわかります。
選択肢①~⑤
以上から、この問題の正解は選択肢③となります。
第1回Python3データ分析模擬試験第20問の解説は以上です。