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 の データフレーム上で柔軟にできると、効率的な処理が可能になりますね。いろいろと使ってみてください。
スポンサーリンク