Pandas入門講座|12.データフレームの結合方法(concat)【PythonのライブラリPandas】

オススメ

この動画では、Pandasのデータフレームの結合方法、concatメソッドについて学びます。
結合とは、2つのデータフレームをくっつけることです。
前回のレッスンで説明をしたmergeメソッドは、共通するカラムをキーとして2つのデータフレームを1つにしました。
mergeメソッドは、データフレーム同士を横に結合する方法でした
簡単にいうと、concatメソッドは、データフレーム同士を縦に結合させる方法です。
Pandasのデータ加工、人工知能のデータ前処理などでよく使われるメソッドです。
このレッスンでconcatをぜひ極めてください!

▼目次
00:00 はじめに
01:06 データフレームの作成
01:59 同じ名前のカラムをキーに結合
02:33 重複カラム名の指定方法
03:35 異なるカラム名をキーに結合
04:16 複数のキーで結合
05:38 結合の種類
08:53 インデックスをキーに結合
09:34 結合結果をソート
09:51 concatメソッドとmergeメソッド
10:32 おわりに

▼関連動画
Pandas入門|04.データフレーム (DataFrame) とは|データフレーム作成、インデックスやカラムの変更方法、データ操作

Pandas入門|04.データフレーム (DataFrame) とは|データフレーム作成、インデックスやカラムの変更方法、データ操作【Python必須ライブラリPandasを初心者にわかりやすく解説】

▼おすすめ動画
Pythonで面倒なExcelの仕事を自動化しよう【第一弾】

Pythonで面倒なExcelの仕事を自動化しよう( 第一弾 )|一瞬で仕事がおわるプログラミング活用術

Pythonで面倒な「ブラウザ操作」や「データ収集」の作業を自動化しよう

Pythonで面倒な「ブラウザ操作」や「データ収集」の作業を自動化しよう|Webスクレイピングのやり方をわかりやすく解説

Pythonで面倒な「メール配信(Gmail)」の作業を自動化しよう

Pythonで面倒な「メール配信(Gmail)」の作業を自動化しよう|一瞬で仕事がおわるプログラミング活用術

Python超入門コース |Pythonの超基本的な部分をたった1時間で学べます【プログラミング初心者向け入門講座】

Python超入門コース 合併版|Pythonの超基本的な部分をたった1時間で学べます【プログラミング初心者向け入門講座】

▼自己紹介
現在:フリーランス(マーケティング関連の人工知能開発、データ分析や業務自動化など)
前職:リクルート

▼SNS
Twitter : https://twitter.com/kino_code/likes
Facebook :https://www.facebook.com/%E3%82%AD%E3%83%8E%E3%82%B3%E3%83%BC%E3%83%89-105693727500005/

▼文字書き起こし
import pandas as pd

まず、Pandasをインポートする記述を書きます。
「as」を使ってPandasを「pd」という名前で使えるようにしましょう。
実行します。

import warnings
warnings.filterwarnings(‘ignore’)

あとのソースコードで出てきますが、結合するカラムが一致していないときにwarning、つまり警告がでてくることがあります。
そのwarningがでていても処理には影響はありません。
しかし、jupyter labが読みづらくなってしまうので、warningを表示させない設定にしましょう。
warningsというライブラリをインポート。
その上で、warningsドットfillterwarings、無視という意味のイグノアを書きましょう。

df01 = pd.DataFrame( ‘氏名’:[‘佐藤’, ‘鈴木’, ‘高橋’, ‘田中’],
‘クラス’:[‘df01’, ‘df01’, ‘df01’, ‘df01’],
‘数学’: [1, 2, 3, 4],
‘国語’:[5, 6, 7, 8])
df01
結合のためにデータフレームを作成しましょう。
まず1つ目のデータフレームを作成します。
df01というクラスの佐藤さん、鈴木さん、高橋さん、田中さんが受けた数学と国語のテスト結果のデータフレームを作成しましょう。
点数は、わかりやすさのために1234とします。実行します。このようなデータフレームです。

df02 = pd.DataFrame( ‘氏名’:[‘伊藤’, ‘渡辺’, ‘山本’],
‘クラス’:[‘df02’, ‘df02’, ‘df02’],
‘数学’: [9, 10, 11],
‘国語’:[12, 13, 14])
df02

2つ目のデータフレームです。
df02というクラスの伊藤さん、渡辺さん、山本さんが受けた数学と国語のテスト結果のデータフレームを作成します。
このようなデータフレームです。

pd.concat([df01, df02])

それでは早速、df01とdf02のテーブルを結合させてみましょう。
pd.concatと書いて丸括弧。丸括弧の中に、結合したいデータフレームをリストで記述します。
実行します。結合できました。
簡単でしたね。
ただし、色々工夫ができますので、みていきましょう。

pd.concat([df01, df02], ignore_index=True)

先ほどのデータフレームは、それぞれのデータフレームのインデックスをそのまま使っていました。
インデックス番号を再度振り直すには、ingore_indexの引数にTrueを渡します。
実行します。
インデックス番号が振り直されました。

df03 = pd.DataFrame( ‘氏名’:[‘中村’, ‘小林’, ‘加藤’],
‘クラス’:[‘df03’, ‘df03’, ‘df03’],
‘数学’: [15, 16, 17],
‘国語’:[18, 19, 20])
df03

concatでは、2つ以上のデータフレームを結合することができます。
試しに、3つのデータフレームを結合させてみましょう。
そのために、3つ目のデータフレームを作成します。
このようなデータフレームです。
pd.concat([df01, df02, df03])
複数のデータフレームを結合の方法は簡単です。
結合したいデータフレームをリストにするだけです。
実行します。
クラスがデータフレームの名前なので、複数のデータフレームが結合されていることがわかります。

pd.concat([df01, df02, df03],keys=[‘df01′,’df02′,’df03’])

今回はカラム名のクラスにデータフレームを名前をそのまま書いてあるので、元のデータフレームがなんだったかわかります。
しかし、このカラムがなかったら、元のデータフレームがなんなのかわからなくなります。
その場合は、keysという引数に任意の名前のリストを渡します。
そのリストの名前がマルチインデックスになります。1番目、2番目、3番目という名前にしましょう。
実行します。
keysで指定した名前がインデックスとして表示されています。
ちなみに、マルチインデックスとは、その名前の通り、複数のインデックスという意味です。

df.index

インデックスを確認してみましょう。
MultiIndexとなっています。
このようにデータフレームは複数のカラムをインデックスに指定することができます。
この機会にMultiIndexという単語だけでも覚えておきましょう。

df04 = pd.DataFrame( ‘氏名’:[‘吉田’, ‘山田’, ‘佐々木’],
‘クラス’:[‘df04’, ‘df04’, ‘df04’],
‘数学’: [21, 22, 23],
‘社会’:[24, 25, 26])
df04

さて、もう1つデータフレームを作成してみましょう。
今までのデータフレームは、数学と国語の教科のデータフレームでした。
今度は、数学のカラム名はそのまま、国語のカラム名をではなく社会のテスト結に変更をして、名前は吉田さん、山田さん、佐々木さんのデータフレームを作成しましょう。
このようなデータフレームです。

続きは文字書き起こしブログにて。

▼書き起こしブログ
https://kino-code.com/pandas-concat/

#PythonとPandas #Pandas入門 #Pandas使い方

▼お仕事のお問い合わせ
キノコードでは、仕事の自動化の開発業務&コンサルティング業務のみを現在受け付けております。
お問い合わせ先かTwitterのDMか、「キノコードトップページ→概要」にあるメールアドレスまでお問い合わせください。

コメント

  1. アガミマオ より:

    毎日学習したいので、登録させていただきました‼︎
    とても丁寧な解説で助かります‼︎
    ありがとうございます❣️

  2. 小山貴弘 より:

    最近は最後の挨拶がお茶目ですね
    どっちのキノコードさんが素に近いのでしょうか?

    内容はとても分かりやすく、毎日楽しく視聴させていただいております。
    引き続きこっそり応援してます。

  3. takahiro Watabe より:

    いつもありがとうございます。何度も繰り返し拝見し広告収益に貢献させていただいています。
    動画の冒頭で機械学習のまで講義いただけるとありますが、是非テンソルフロー(TensorFlow)を絡めた内容にてお願いします。M1シリコンで庶民も高速な機械学習が可能でそうです。

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