連載
» 2018年02月13日 05時00分 公開

Pythonで始める機械学習入門(6):機械学習の前に重要なデータ抽出・加工に便利なPythonライブラリ「pandas」の基本的な使い方のチュートリアル (4/4)

[加藤公一,シルバーエッグ・テクノロジー]
前のページへ 1|2|3|4       

データの連結・結合

 データの連結・結合について見てみます。まずはデータを用意します。

縦に連結する「concat」メソッド

 df1とdf2を縦につなげてみます。

インデックスを振り直す「reset_index」メソッド

 これで一応縦に連結されましたが、インデックスが変わってないのには違和感があるかもしれません。インデックスを振り直すには次のようにします。

 ここで「drop=True」というのは、古いインデックスを捨てることを意味します。

横に連結する「merge」メソッド

 ここからは、表を横方向に結合する連作(SQLでいうと「join」に該当)を見てみます。キーとなる値を見て連結するので、キーとなるデータを付加します。

 これを結合してみましょう。

 これはD列をキーにして結合しています。共通するキー値が"A"と"B"しかないので、それ以外の行が捨てられています。これはSQLでいうところの「内部結合」に当たる処理です。

 次に、「外部結合」も試してみます。

 これはSQLでは「左外部結合」と呼ばれているもので、左側のデータdf1のキー値が全て生かされ、対応するdf2の行がない場合は「欠損値」として取り扱われます。

配列型への変換――valuesプロパティ

 今までDataFrame型データのさまざまな処理の方法を見てきましたが、機械学習を使った処理について考えると、これらは前処理を簡潔にすることに向いています。

 前処理が一通り終わって機械学習アルゴリズムを適用しようとすると、今度はNumPyの配列型の方が都合が良いことが多いです。そういう場合はvaluesプロパティを参照します。次がその例です。

 ここではA、B、C列だけを配列として取り出しました。これはNumPyで扱える2次元配列です。

まずはデータローダだけからでも始めてみよう

 以上、pandasの機能のうち機械学習適用における前処理としてよく使われるであろう機能だけを絞って紹介しました。

 pandasは非常に多機能であり、またインタフェースが独特なので使いこなすのはそれなりに難しいのですが、習熟すると処理の効率の面で強力な武器になります。詳細は公式サイトのマニュアルを参照してください。

 初心者にはとっつきにくいかもしれませんが、とにかくデータローダが便利で使いやすいので、まずはデータローダだけを使ってみるところからスタートして、抽出にも少しずつ慣れていくというやり方もいいと思います。

前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。