Python3エンジニア認定データ分析試験 ④ pandas

SeriesとDataFrameの構造、CSVの読み込みと書き出し、行・列の抽出(loc・ilocとスライス、条件抽出)、列の追加・削除・並べ替え、欠損値の扱い(isnull・dropna・fillna)、データの結合(concat・merge・join)、groupbyによるグループ集計、時系列データとdate_range、統計量の要約を扱う。公式の出題範囲では7問・17.5%で、scikit-learnの8問に次ぐ分量。つまずきどころは、locがラベル・ilocが位置という使い分けとスライス終端が含まれるかの違い、mergeのhow指定(inner/outer/left/right)で結果件数が変わる点。

この分野の問題45問を、選択肢・正解・解説つきで掲載しています。まず自分で解答を考えてから「正解と解説を見る」を開いて答え合わせをしてください。

クイズモードで挑戦 →

111pandasを利用する際の一般的なインポート文はどれか。

  1. Aimport pandas as pd
  2. Bimport pandas as pn
  3. Cimport pd as pandas
  4. Dimport pnd as pandas
正解と解説を見る

正解:Aimport pandas as pd

pandasを利用する際は「import pandas as pd」とインポートするのが一般的である。

この問題の解説ページを開く →

112pandasの1次元データ構造を何というか。

  1. ASeries
  2. BDataFrame
  3. CArray
  4. DMatrix
正解と解説を見る

正解:ASeries

pandasの1次元データ構造はSeriesである。

この問題の解説ページを開く →

113「ser = pd.Series([10, 20, 30, 40])」を実行した場合、データ型(dtype)は何が自動的に割り当てられるか。

  1. Aint32
  2. Bint64
  3. Cobject
  4. Dfloat64
正解と解説を見る

正解:Bint64

整数のみを要素に持つSeriesを作成すると、自動的にint64が割り当てられる。

この問題の解説ページを開く →

1142次元のデータ型であるDataFrameを作成するオブジェクトはどれか。

  1. Apd.Table
  2. Bpd.Panel
  3. Cpd.DataFrame
  4. Dpd.Matrix
正解と解説を見る

正解:Cpd.DataFrame

2次元のデータを作成するにはpd.DataFrameを使う。

この問題の解説ページを開く →

115DataFrameに整数や文字列が混在する列がある場合、その列のデータ型はどうなるか。

  1. Aint64
  2. Bobject
  3. Cmixed
  4. Dstring
正解と解説を見る

正解:Bobject

1つの列に整数や文字列が混在している場合、データ型はオブジェクト(object)となる。

この問題の解説ページを開く →

116DataFrameの概要を見るため、先頭の5行を出力するメソッドはどれか。

  1. Ahead()
  2. Btail()
  3. Cfirst()
  4. Dtop()
正解と解説を見る

正解:Ahead()

DataFrameの先頭5行を出力するにはhead()メソッドを使う。

この問題の解説ページを開く →

117DataFrameのサイズ(行数と列数)を知るために使用するものはどれか。

  1. Asize
  2. Bshape
  3. Clength()
  4. Dshape()
正解と解説を見る

正解:Bshape

サイズを知るにはメソッドではなく、shape属性を使う。

この問題の解説ページを開く →

118DataFrameの末尾の5行を出力するメソッドはどれか。

  1. Aend()
  2. Bbottom()
  3. Ctail()
  4. Dlast()
正解と解説を見る

正解:Ctail()

DataFrameの末尾の5行を出力するにはtail()メソッドを使用する。

この問題の解説ページを開く →

119CSVファイルを読み込むためのpandasの関数はどれか。

  1. Aread_csv
  2. Bload_csv
  3. Copen_csv
  4. Dget_csv
正解と解説を見る

正解:Aread_csv

CSVファイルを読み込むにはread_csv関数を使用する。

この問題の解説ページを開く →

120WebサイトのHTML内にあるtable要素からDataFrameに取り込む関数はどれか。

  1. Aread_web
  2. Bread_html
  3. Cparse_html
  4. Dread_table
正解と解説を見る

正解:Bread_html

HTML内のtable要素を読み込むにはread_htmlを使用する。

この問題の解説ページを開く →

121ExcelファイルをDataFrameとして読み込む関数はどれか。

  1. Aread_excel
  2. Bread_xls
  3. Cload_excel
  4. Dimport_excel
正解と解説を見る

正解:Aread_excel

Excelファイルを読み込むにはread_excelを使用する。

この問題の解説ページを開く →

122DataFrameをCSVファイルとして書き出すメソッドはどれか。

  1. Ato_csv
  2. Bsave_csv
  3. Coutput_csv
  4. Dwrite_csv
正解と解説を見る

正解:Ato_csv

DataFrameをCSVファイルとして書き出すにはto_csvメソッドを使用する。

この問題の解説ページを開く →

123DataFrameをPythonのオブジェクトとして直列化しファイル保存するメソッドはどれか。

  1. Ato_pickle
  2. Bto_json
  3. Cto_object
  4. Dto_serial
正解と解説を見る

正解:Ato_pickle

Pythonオブジェクトを直列化して保存・再利用するにはto_pickleメソッドを使う。

この問題の解説ページを開く →

124DataFrameから、行と列のラベル(インデックス名やカラム名)を指定して抽出するメソッドはどれか。

  1. Aix
  2. Bloc
  3. Cat
  4. Diloc
正解と解説を見る

正解:Bloc

インデックス名やカラム名(ラベル)を指定して抽出する場合はlocメソッドを使用する。

この問題の解説ページを開く →

125「df.iloc[1, 1]」の結果として出力されるのはどの位置の値か。

  1. A1行目、2列目
  2. B2行目、1列目
  3. C1行目、1列目
  4. D2行目、2列目
正解と解説を見る

正解:D2行目、2列目

ilocはインデックス番号・カラム番号を0から指定するため、[1, 1]は2行目の2列目となる。

この問題の解説ページを開く →

126文字列として扱われている日付カラムに「pd.to_datetime」を適用した後のデータ型は何になるか。

  1. Atimestamp
  2. Bobject
  3. Cstring
  4. Ddatetime64[ns]
正解と解説を見る

正解:Ddatetime64[ns]

pd.to_datetime関数で変換するとdatetime64[ns]型になる。

この問題の解説ページを開く →

127条件抽出「df['歩数'] >= 10000」を実行した時の戻り値は何か。

  1. A抽出された配列
  2. B数値のリスト
  3. CDataFrame
  4. Dbool型のSeries
正解と解説を見る

正解:Dbool型のSeries

比較演算子を適用すると、各行が条件を満たすかを表すbool型のSeriesが返る。

この問題の解説ページを開く →

128DataFrameの並べ替えを行うメソッドはどれか。

  1. Asort
  2. Bsort_index
  3. Csort_values
  4. Dorder_by
正解と解説を見る

正解:Csort_values

カラムの値で並べ替えを行うにはsort_valuesメソッドを使用する。

この問題の解説ページを開く →

129「df.sort_values(by='歩数', ascending=False)」はどのような処理か。

  1. A歩数カラムをランダムに並べ替える
  2. B歩数カラムの欠損値を削除する
  3. C歩数カラムを昇順に並べ替える
  4. D歩数カラムを降順に並べ替える
正解と解説を見る

正解:D歩数カラムを降順に並べ替える

ascending=Falseを指定することで降順に並べ替えられる。

この問題の解説ページを開く →

130不要なカラム「日付」を削除する正しいコードはどれか。

  1. Adf.drop('日付', axis=1)
  2. Bdf.remove('日付', axis=0)
  3. Cdf.drop('日付', axis=0)
  4. Ddf.delete('日付', axis=1)
正解と解説を見る

正解:Adf.drop('日付', axis=1)

カラムを削除する場合はdropメソッドを用い、axis=1を指定する。

この問題の解説ページを開く →

131「pd.get_dummies()」を使って行う処理として紹介されている技術は何か。

  1. AMin-Maxスケーリング
  2. BOne-hotエンコーディング
  3. C欠損値補完
  4. D主成分分析
正解と解説を見る

正解:BOne-hotエンコーディング

get_dummies関数はOne-hotエンコーディングを行うために使われる。

この問題の解説ページを開く →

132「df.query('歩数 >= 10000 and 摂取カロリー < 1800')」と記述して抽出を行った。この戻り値は何か。

  1. A条件を満たす行のみのDataFrame
  2. BTrue/FalseのSeries
  3. C該当データのタプル
  4. D条件を満たす行のインデックス
正解と解説を見る

正解:A条件を満たす行のみのDataFrame

queryメソッドは条件式を満たす行からなるDataFrameを返す。

この問題の解説ページを開く →

133pandasで開始日付から指定した期間の日付インデックスを作成する関数はどれか。

  1. Apd.create_date
  2. Bpd.time_series
  3. Cpd.date_range
  4. Dpd.datetime_index
正解と解説を見る

正解:Cpd.date_range

開始日付や期間を指定して日付の配列を作成するにはpd.date_rangeを使う。

この問題の解説ページを開く →

134「pd.date_range(start='2017-01-01', periods=365)」を実行した時、取得されるデータの型(dtype)は何か。

  1. Adate
  2. Bobject
  3. Cdatetime64[ns]
  4. Dfloat64
正解と解説を見る

正解:Cdatetime64[ns]

date_rangeの戻り値のdtypeは'datetime64[ns]'である。

この問題の解説ページを開く →

1351年分のデータ(df)を月ごとの平均値にサマライズするため、Grouperを使う場合の正しい記述はどれか。

  1. Adf.group(pd.Grouper(freq='Y')).mean()
  2. Bdf.groupby(pd.Grouper(freq='Month')).mean()
  3. Cdf.groupby(pd.Grouper('M')).average()
  4. Ddf.groupby(pd.Grouper(freq='M')).mean()
正解と解説を見る

正解:Ddf.groupby(pd.Grouper(freq='M')).mean()

周期的なグルーピングにはpd.Grouper(freq='M')を用い、mean()で平均を取る。

この問題の解説ページを開く →

136「df.loc[:, '乱数'].resample('M').mean()」を実行した時の戻り値の型はどれか。

  1. Afloat
  2. BDataFrame
  3. CSeries
  4. Dndarray
正解と解説を見る

正解:CSeries

1つのカラムを指定してresampleしているため、戻り値はSeriesになる。

この問題の解説ページを開く →

137土曜日ごとの日付データを作成する際、date_rangeのfreq引数に指定する文字列はどれか。

  1. AWEEK-SAT
  2. BW-SAT
  3. CSATURDAY
  4. DW-6
正解と解説を見る

正解:BW-SAT

freq='W-SAT'と指定することで土曜日の日付を出力できる。

この問題の解説ページを開く →

138欠損値(NaN)に0を代入して補完するメソッドはどれか。

  1. Afillna(0)
  2. Bdropna(0)
  3. Cinsert(0)
  4. Dreplace(0)
正解と解説を見る

正解:Afillna(0)

欠損値を埋めるにはfillna()メソッドを用いる。

この問題の解説ページを開く →

139欠損値が含まれる行を削除するメソッドはどれか。

  1. Adiscard()
  2. Bdelete_null()
  3. Cremove_nan()
  4. Ddropna()
正解と解説を見る

正解:Ddropna()

欠損値の行を削除するにはdropna()メソッドを使う。

この問題の解説ページを開く →

140「df_201705.fillna(method='ffill')」はどのような処理か。

  1. A欠損値を後方の値で補完する
  2. B欠損値を手前の値で補完する
  3. C欠損値を0で補完する
  4. D欠損値を平均値で補完する
正解と解説を見る

正解:B欠損値を手前の値で補完する

method='ffill'を与えると、欠損値を1つ手前の値で補完する。

この問題の解説ページを開く →

141欠損値をその列の平均値で補完する場合、引数として渡すのはどれか。

  1. Adf.mean()
  2. B'mean'
  3. Cdf.average()
  4. Dnp.mean
正解と解説を見る

正解:Adf.mean()

平均値で補完する場合はfillna(df.mean())のように記述する。

この問題の解説ページを開く →

142fillnaメソッドで最頻値を用いて補完する際、最頻値を取得するメソッドはどれか。

  1. Amedian()
  2. Bmax()
  3. Cfreq()
  4. Dmode()
正解と解説を見る

正解:Dmode()

最頻値はmode()メソッドで取得する(中央値はmedian())。

この問題の解説ページを開く →

1432つのDataFrameを行方向や列方向に連結するpandasの関数はどれか。

  1. Apd.merge
  2. Bpd.append
  3. Cpd.concat
  4. Dpd.join
正解と解説を見る

正解:Cpd.concat

DataFrame同士を連結するにはpd.concat関数を使う。

この問題の解説ページを開く →

144「pd.concat([df1, df2], axis=0)」の実行結果はどれか。

  1. A列方向に連結される
  2. B行方向に連結される
  3. C共通のキーで結合される
  4. Dエラーになる
正解と解説を見る

正解:B行方向に連結される

axis=0を指定すると行方向(インデックス方向)の連結となる。

この問題の解説ページを開く →

145列方向(カラム方向)にDataFrameを連結する場合に指定する引数はどれか。

  1. Aaxis='col'
  2. Baxis=None
  3. Caxis=0
  4. Daxis=1
正解と解説を見る

正解:Daxis=1

列方向に連結する場合はaxis=1を指定する。

この問題の解説ページを開く →

146DataFrameの各列の最大値を確認するメソッドはどれか。

  1. Amax()
  2. Bmaximum()
  3. Ctop()
  4. Dupper()
正解と解説を見る

正解:Amax()

最大値を確認するにはmax()メソッドを使用する。

この問題の解説ページを開く →

147「df.loc[:, '摂取カロリー'].std(ddof=0)」を実行した場合、出力される標準偏差は何か。

  1. A不偏標準偏差
  2. B誤差の標準偏差
  3. C標本標準偏差
  4. D母集団の標準偏差
正解と解説を見る

正解:D母集団の標準偏差

stdメソッドにddof=0を指定すると母集団の標準偏差が出力される。

この問題の解説ページを開く →

148DataFrameの基本統計量をまとめて出力するメソッドはどれか。

  1. Asummary()
  2. Binfo()
  3. Cdescribe()
  4. Dstats()
正解と解説を見る

正解:Cdescribe()

DataFrameの統計量をまとめて出力するにはdescribe()メソッドを使用する。

この問題の解説ページを開く →

149カラム間のデータの相関係数を出力するメソッドはどれか。

  1. Acov()
  2. Bcor()
  3. Ccorr()
  4. Drelate()
正解と解説を見る

正解:Ccorr()

カラム間のデータの関係を数値(相関係数)で確認するにはcorr()メソッドを使用する。

この問題の解説ページを開く →

150Jupyter Notebook上でグラフを表示するために実行するマジックコマンドはどれか。

  1. A%display on
  2. B%matplotlib show
  3. C%matplotlib inline
  4. D%plot show
正解と解説を見る

正解:C%matplotlib inline

Jupyter Notebookでグラフを表示するには「%matplotlib inline」を実行する。

この問題の解説ページを開く →

151pandasのDataFrameから散布図行列を出力する際、インポートする関数はどれか。

  1. Aplot_matrix
  2. Bscatter_matrix
  3. Cpair_plot
  4. Dscatter_plot
正解と解説を見る

正解:Bscatter_matrix

散布図行列を出力するにはpandas.plottingからscatter_matrix関数をインポートする。

この問題の解説ページを開く →

152散布図行列において、同じカラム同士のデータとなる斜めのエリアには何のグラフが出力されるか。

  1. A棒グラフ
  2. B円グラフ
  3. Cヒストグラム
  4. D折れ線グラフ
正解と解説を見る

正解:Cヒストグラム

scatter_matrixを使うと、斜めのエリアにはヒストグラムが出力される。

この問題の解説ページを開く →

153pandasのDataFrameをNumPyの配列(ndarray)に変換するために使用する属性はどれか。

  1. Ato_numpy
  2. Bndarray
  3. Carray
  4. Dvalues
正解と解説を見る

正解:Dvalues

DataFrameをNumPyの配列に変換する際には、values属性を使用する。

この問題の解説ページを開く →

154「df[df.loc[:, '摂取カロリー']==2300].count()」が返すものはどれか。

  1. A摂取カロリーが2300のデータの平均
  2. B全データの件数
  3. C摂取カロリーカラムのユニークな値の数
  4. D摂取カロリーが2300のデータ件数
正解と解説を見る

正解:D摂取カロリーが2300のデータ件数

条件に合致するデータに対してcountメソッドを用いると、その条件の件数を確認できる。

この問題の解説ページを開く →

155DataFrameオブジェクトからカラム名の一覧を設定・取得する属性はどれか。

  1. Aindex
  2. Bcolumns
  3. Clabels
  4. Dkeys
正解と解説を見る

正解:Bcolumns

カラム名の設定や取得にはcolumns属性を使用する。

この問題の解説ページを開く →
Python3エンジニア認定データ分析試験の全分野一覧へ戻る