本問題の解説は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」)で指定します。
-1024x321.png)
行列を、locで指定したコードの実行結果は右の通りです。
-1024x329.png)
ilocで指定したコードの実行結果は右の通りです。
どちらも同様に10を抽出できることがわかります。
選択肢①~⑤

以上から、この問題の正解は選択肢③となります。
第1回Python3データ分析模擬試験第20問の解説は以上です。