【Python】PandasのDataFrameの組み合わせ- merge(), join(), concate()による結合

Pandas
スポンサーリンク

初心者の独学でのプログラミング学習はとてもツライ…

プログラミングをマスターしたい!

今のIT業界はプログラミングエンジニアが不足していると言われています。
高収入の職業とも言われる分野もありますし、AI、機械学習、ディープラーニング、IOTといった注目される分野が目白押しです。

でも、いざ初心者がプログラミングをマスターしようとすると…

  • 本を読んだりネットの記事で自力で勉強しているけど限界を感じる
  • プログラミングスクールに定期的に通うのは面倒だ
  • 地方に住んでると家の近くにプログラミングスクールなんてない
  • どのプログラミング言語を学べばいいのか悩む
  • 実際の就職や転職にプログラミングが活かせるのか心配だ

など、プログラミングを自分で勉強しようとすると悩みが尽きません。

プログラミングに詳しい友人に教えてもらおうと思っても、そんな友人なんて滅多にいません。いたとしても細かく教えてくれるほど時間に余裕がある人はいないでしょう。

そんな独学でプログラミングをマスターするのに限界を感じてる方に、オンラインプログラミングスクールをがおすすめです。

おすすめのオンラインスクールはこちら

Pythonの拡張モジュールPandasのDataFrameの操作をしてきましたが、複数のDataFrameを組み合わせる必要がある場面も出てきます。

PandasにはDataFramesを組み合わせる方法として、主に3つの方法があります。ここでは、merge(), Join(), concate()を使って組み合わせの方法を見て行こうと思います。

スポンサーリンク

concat()

まずはconcat()から見ていきましょう。

concat()を使えば、基本的にDataFrameをつなぎ合わせることができます。ただし、連結するデータの次元が一致する必要があることに注意が必要です。

jupyter notebookでPythonを起動してpandasをインポートしてます。例として次のようなDataFrameを3つ作ってみます。

実行してみます。

それぞれのDataFrameを表示すると次のようになります。

pd.concat()にDataFrameのリストを渡して、連結することができます。

次のように先に用意した3つのDataFrameをリストで渡してみます。

columnが全て揃っているので縦方向に連結されているのがわかります。

同じconcat()にaxis=1を渡すことで、横軸方向に連結することができます。

columnが横に連結される形になっていますが、インデックスが揃った値ではないので該当しない部分にはNaNが入れられて表示されています。

スポンサーリンク

merge()

次はmerge()を扱ってみます。

merge()を使用すると、SQLテーブルをmergeするのと同様のロジックを使用してDataFrameを連結することができます。

次のような共通のキーを持つ単純なDataFrameを2つ用意してみます。

それぞれのDataFrameを次のように表示されます。

この2つのDataFrameをmerge()に渡して連結してみます。

次元も揃っているのでキーを共通にして連結されています。これは見やすくてわかりやすいと思います。

では、今度は次のように複雑なDataFrameを作ってみます。

2つのキーが共通していますが、その値はそれぞれ違います。

それぞれ表示すると次のようになります。

この2つのDataFrameをこれまでと同様にmerge()してみます。

2つのDataFrameに共通しているkey1, key2を軸に連結されますが、さらにそのkey1, key2の値でどちらにも共通している値を持つ部分でされています。

この複雑なDataFrameをさらに違う操作で値を取得することができます。それには、howキーワードとonキーワードを使います。

onキーワードで明示的に列名を与えて、howキーワードにouterを指定して外部結合させてみます。

全ての要素が結合されて、値の無い部分にNaNが入れられているのがわかります。集合和の形ですね。

このhowにはleft, rightを指定して、それぞれ左、右のデータセットに存在する行に合わせてデータを結合できます。

まずhow=’right’で右結合してみましょう。

df_rightのkey1, key2に合わせて結合されているのがわかります。要素の無い部分にはNaNが入っています。

今度はhow=’left’で左結合してみます。

df_leftのkey1, key2に合わせて結合され、要素の無い部分にNaNが入っています。

スポンサーリンク

join()

最後にJoin()を見ていきます。

join()は異なるインデックスを持つ2つのDataFrameを1つに結合する方法です。

次のindexの異なる2つのDataFrameを用意します。

DataFrameをjoin()で結合するには次のように行ないます。

df_leftのインデックスに合わせて結合されているのがわかります。

今度はこれに、how=’outer’を指定して外部結合させてみます。

要素の無い部分にNaNを入れて、2つのDataFrameが全て結合されているのがわかります。

スポンサーリンク

最後に

ここでは、Pythonの拡張モジュールPandasのDataFrameの結合を見てきました。

PandasにはDataFramesを組み合わせる方法として主に3つの方法があります。

concate()、merge()、Join()の3つです。

これらを使ってDataFremeの結合を見てきましたが、それぞれの機能の特徴をよく理解しましょう。

自宅学習はオンラインプログラミングスクールを活用!

自宅学習にはオンラインプログラミングスクールがおすすめ!

オンラインプログラミングスクールは独学でプログラミングを学習する時のデメリットを解消する仕組みが備わっています。

気になるところは…

学習がオンラインで完結するのはもちろんですが、独学ではできない質問サポートがあるかどうか。わからないことを現役のエンジニアが質問に答えてくれるといいですよね。

受講者個人に担当のメンターがつき、マンツーマンで学習の相談に乗ってくれることも必要で、ITエンジニアの世界についても伺えたりもすると幅が広がります。

オンライン面談だけでなく、チャット機能を使って気軽に質問を投げかけることができることも大切です。

また、オリジナルプロダクトの開発とサポートがコースの中に組み込まれていて、独学ではなかなか難しい実践的なスキルの習得にもつなげたい。

プログラミングをマスターした後の実際の仕事につながる転職サポートでがあると、ITエンジニアの世界に飛び込むのに不安が解消されます。

そんな豊富なメニューが揃っているおすすめのオンラインプログラミングスクールがこちらにあります。

おすすめのオンラインプログラミングスクールはこちら

TechAcademyはおすすめのオンラインプログラミングスクール!

オンラインのプログラミングスクールでは、テックアカデミーの充実度が目を見張ります。

オンラインで受講が完結するので、自宅学習でプログラミングをマスターしたい人にはテックアカデミーがおすすめです。

メンター制度も現役のプロが対応してくれます。大学生などが対応しているスクールに比べて本気度と専門性が違います。メンター制度の無いスクールもありますし、担当では無いメンターが対応するスクールもあったりするので、相談の質が違いますね。

チャットサポートもあるので、それが無いスクールに比べて相談の気軽さの違いがあります。

プロダクト開発のサポートで実践力が養われるだけでなく、どの講座を利用しても転職サポートが受けられるのはありがたい。

用意されているコースも、初心者向けのプログラミングコースから、Python、Java、PHP、iPhoneアプリ、AndroidといったITエンジニアのベースとなる主要な言語だけでなく、AI、データサイエンス、ブロックチェーン、webアプリケーションと行った実践的なコースまで用意しています。

他にも、webデザインやUI/UXデザイン、動画編集、webディレクションやwebマーケティングといったプログラミング以外での役立つコースまであります。

このようなたくさんの選択肢から自分にあったコースを選ぶことがでるのがテックアカデミーです。

コースの期間も短期間でマスターしたり、長期の受講でじっくり取り組むコースを選ぶこともできます。

複数講座のセットコースを利用することで大幅な割引が受けらるので、お得に受講することもできます。

無料体験もありますので、プログラミング学習でオンラインスクールを考えている人はTechAcademyをぜひ利用してみてください。

テックアカデミーの公式サイトはこちら

タイトルとURLをコピーしました