データの連結・結合について見てみます。まずはデータを用意します。
df1とdf2を縦につなげてみます。
これで一応縦に連結されましたが、インデックスが変わってないのには違和感があるかもしれません。インデックスを振り直すには次のようにします。
ここで「drop=True」というのは、古いインデックスを捨てることを意味します。
ここからは、表を横方向に結合する連作(SQLでいうと「join」に該当)を見てみます。キーとなる値を見て連結するので、キーとなるデータを付加します。
これを結合してみましょう。
これはD列をキーにして結合しています。共通するキー値が"A"と"B"しかないので、それ以外の行が捨てられています。これはSQLでいうところの「内部結合」に当たる処理です。
次に、「外部結合」も試してみます。
これはSQLでは「左外部結合」と呼ばれているもので、左側のデータdf1のキー値が全て生かされ、対応するdf2の行がない場合は「欠損値」として取り扱われます。
今までDataFrame型データのさまざまな処理の方法を見てきましたが、機械学習を使った処理について考えると、これらは前処理を簡潔にすることに向いています。
前処理が一通り終わって機械学習アルゴリズムを適用しようとすると、今度はNumPyの配列型の方が都合が良いことが多いです。そういう場合はvaluesプロパティを参照します。次がその例です。
ここではA、B、C列だけを配列として取り出しました。これはNumPyで扱える2次元配列です。
以上、pandasの機能のうち機械学習適用における前処理としてよく使われるであろう機能だけを絞って紹介しました。
pandasは非常に多機能であり、またインタフェースが独特なので使いこなすのはそれなりに難しいのですが、習熟すると処理の効率の面で強力な武器になります。詳細は公式サイトのマニュアルを参照してください。
初心者にはとっつきにくいかもしれませんが、とにかくデータローダが便利で使いやすいので、まずはデータローダだけを使ってみるところからスタートして、抽出にも少しずつ慣れていくというやり方もいいと思います。
Copyright © ITmedia, Inc. All Rights Reserved.