本問題では「pandas」のうち「データ連結(concat関数)」について学びます。
本問題の解説はYouTube動画でもご覧いただけます。
【解説動画】 第1回Python3データ分析模擬試験 第26問
※当解説動画シリーズはPythonエンジニア育成推進協会に認定された「Python 3 エンジニア認定データ分析試験」の参考教材です。
問題
pandasに関する次の記述のうち、正しいものはどれか 。
① 相関係数は、カラム間のデータの関係を数値で表すものであり、describeメソッドで取得する。
② DataFrameをNumPy配列に変換するには、values属性を利用する。この場合、インデックス名、カラム名は保持されない。
③ concat関数は、2つのDataFrameを連結する。引数にaxis=0を加えると列方向の連結となり、axis=1を加えると行方向の連結となる。この場合、行列の順序は必ず保持される。
④ pandasはNumPyを基盤に2次元のDataFrameと、より多次元のSeriesをデータ型として提供している。
⑤ corr関数に引数としてDataFrameを渡すと基本統計量グラフを出力することができる。
解説
正解は選択肢②です。以下解説します。
選択肢①
選択肢①は誤りです。
相関係数の取得に用いるのは、describeメソッドではなくcorrメソッドです。
選択肢②
選択肢②は、正しい肢です。
例えば右のような、インデックス名とカラム名が指定されたDataFrameを生成します。
ここでvalues属性を用いてDataFrameをNumpy配列に変換すると、データの中身だけになります。インデックス名とカラム名はありません。
選択肢③
選択肢③は誤りです。
2つのDataFrameをconcat関数で連結するときに、axisが0なら行方向、1なら列方向で連結されます。
また行列の順序は必ず保持されるとは限りません。
たとえば、右のようなDataFrameを生成します。
カラムの名前、df1では「B」「A」、df2では「A」「B」です。df1とdf2はカラムの「A」「B」の順序が異なります。
この2つをconcat関数で、縦方向に連結させると、この場合カラムはdf1またはdf2のいずれか一方しか保持できません(この場合には、df1のカラムの順番「B」「A」を引き継いでいます)。
なおこの場合にsort引数でTrueを指定すると、カラム名は「A」「B」の順になります。
選択肢④
選択肢④は誤りです。Seriesは「1次元」配列です。
選択肢⑤
選択肢⑤は誤りです。
corrはメソッドです。
またcorrメソッドは「相関係数」の算出に使われるものであり、引数として渡せるのは相関係数の算出方法です。
第1回Python3データ分析模擬試験第26問の解説は以上です。