男のブログ俺は中卒だ。学歴なんて無くても生きていける。プログラミングpythonsuckamonMySQLやPostgreSQLなどのRDB(リレーショナルデータベース)では、複数のデータセットを、あるキーに基づいてリンクさせることで結合することができる。これはRDBの中核となる操作だが、pandasのmerge関数を使うことで似たような操作を実現することができる。簡単な例から見てみよう。重複する列名の取り扱いサンプルとなる二つのデータフレームの用意まずは多対一の結合例を見るため、下記のような二つのデータフレームを用意しよう。二つのデータフレームが用意できたら、まずは何も考えずにmerge関数の引数にそれぞれのデータフレームを与えてみよう。0この例のように、どの列をキーとするか指定していない場合、merge関数ではどちらのデータフレームにも含まれる同じ名前の列をキーとして扱う。今回は「key」という列が共通しているので、「key」がキーとして扱われた。キーを指定しないと分かりづらいので、以下のように明示的に指定したあげる方が良いだろう。0キーを個別に使用するキーとしたい列名がそれぞれのデータフレームで異なる場合は、個別にする必要がある。0内部結合と外部結合さて、ここまで見てきた例で結合した結果を見ると、キーのうち「c」や「d」のデータが除外されていることが分かるだろう。join)と同じ働きをする。内部結合は双方のデータセットで共通したキーのみを結果として含めるようになっているため、今回は共通しない「c」や「d」が除外されたというわけだ。外部結合した結果を得たい場合は、以下のようにhowオプションで指定する。how='inner'と指定するとデフォルト挙動と同様、内部結合された結果が返される。多対多のデータセットを結合すると、同じ名前のキーでも左右のデータセット値の組み合わせが多数存在するので、それら全ての組み合わせが結果として返る。3.0複数のキーを使って結合をおこなう場合は、列名のリストを渡す。7.0重複する列名の取り扱いデータセットの結合において、重複する列名があるケースがしばしばある。merge関数にはsuffixesというオプションがあり、列名が重複した場合にそれぞれのデータフレームの列名の末尾に指定の文字列を加えることができる。ndarrayの行列を転置するプロフィール中卒男15歳で熊本から単身大阪へ渡り、囲碁棋士になるための修行を積む。その後、紆余曲折ありプログラミングを学び職とする。現在プログラミングや統計、機械学習の勉強に合わせ、双子の育児に奮闘中。