注目キーワード

【Python】pandas join を利用して DataFrame をシンプルに結合する

Python でデータ解析を行うための高性能なライブラリとして、これまでも pandas の使い方をサンプルソースを使って説明してきました。

以前、2つのデータフレームを結合するために、高性能な merge() 関数の使い方を紹介しました。ここではより簡単に、特定の場合に利用できる join() 関数について、サンプルソースとともに使い方を確認していきます。

インストール

pandas ライブラリを利用しますので、インストールされていない場合には、pip install pandas を実行しておく必要があります。

pandas join 関数の基本的な使い方

merge() の記事で利用した、ExcelのVLOOKUPを使う処理としてやりそうな病院の名寄せ処理を見ていきます。

サンプルソース

サンプルの実装です。

  • 2つのデータフレームに病院の情報が入っています。
  • 1つ目のデータフレームのキー(病院)と2つ目のデータフレームのキー(病院)で名寄せを行い、表を結合したデータフレームを作成します。
    • 1つ目のデータフレームは「病院A」と「病院C」です。
    • 2つ目のデータフレームは「病院A」「病院B」「病院C」「病院D」です。
    • インデックスが同じデータを結合して、新しい行を作りました。

実行結果

実行結果になります。mergeと同様に、病院の名寄せを行ってデータの結合が出来ました。このようにjoinはインデックスを使ってデータ結合を行う処理を簡潔に記述できます。

名寄するときにインデックスが全て存在しない例と対応

結合するときに、全てのインデックスの情報があれば問題ないのですが、データが欠けていることが考えられます。データが欠けている場合の挙動と対応を確認してみます。

実行結果

実行結果です。インデックスを使って名寄せするときの挙動・対応方法を確認することができました。

pandas には mergeとjoinのように、似た機能を提供しているものもあり、使い方を間違えたり、勘違いすることもあります。小さい動作例を確認しながらも、いろんなデータ処理をpandas の データフレーム上で柔軟にできると、効率的な処理が可能になりますね。いろいろと使ってみてください。

スポンサーリンク