LoginSignup
3
3

Pythonデータ分析 | pandasテーブル結合メソッド早見表

Last updated at Posted at 2022-07-31

Pythonデータ分析に使えるpandasテーブル結合を紹介します。また最後に、データ分析の流れを経験できる初心者にオススメ学習コンテンツを紹介しますので、ご参考ください。

必要なライブラリ

import pandas as pd

サンプルデータ

df_math = pd.DataFrame({
    '受験者': ['Aさん', 'Bさん', 'Cさん', 'Dさん', 'Eさん'], 
    '数学得点': ['50', '60', '70', '80', '90']
    })
df_eng = pd.DataFrame({
    '受験者': ['Aさん', 'Bさん', 'Cさん', 'Xさん', 'Yさん'], 
    '英語得点': ['99', '88', '77', '66', '55']
    })

Image from Gyazo

左外部結合 LEFT OUTER JOIN

pd.merge(df_math, df_eng, on='受験者', how='left')

Image from Gyazo

右外部結合 RIGHT OUTER JOIN

pd.merge(df_math, df_eng, on='受験者', how='right')

Image from Gyazo

完全外部結合 FULL OUTER JOIN

pd.merge(df_math, df_eng, on='受験者', how='outer')

Image from Gyazo

内部結合 INNER JOIN

pd.merge(df_math, df_eng, on='受験者', how='inner')
# howを指定しない場合、デフォルトでinnerが指定される。
# pd.merge(df_math, df_eng, on='受験者')も同じ結果となる

Image from Gyazo

結合方法の指定無し

pd.merge(df_math, df_eng, on='受験者')
# howを指定しない場合、デフォルトでinnerが指定される。

Image from Gyazo

結合キーの指定無し

pd.merge(df_math, df_eng)
# onを指定しない場合、自動で同じ列名のキーが指定される。

Image from Gyazo

カラム名称が異なる結合キー指定

サンプルデータ

df_math = pd.DataFrame({
    '受験者': ['Aさん', 'Bさん', 'Cさん', 'Dさん', 'Eさん'], 
    '数学得点': ['50', '60', '70', '80', '90']
    })
df_eng_v2 = pd.DataFrame({
    '氏名': ['Aさん', 'Bさん', 'Cさん', 'Xさん', 'Yさん'], 
    '英語得点': ['99', '88', '77', '66', '55']
    })

Image from Gyazo

pd.merge(df_math, df_eng_v2, left_on='受験者', right_on='氏名')

Image from Gyazo

2つの結合キーの使用

サンプルデータ

df_math_birth = pd.DataFrame({
    '受験者': ['Aさん', 'Bさん', 'Cさん', 'Cさん', 'Cさん'], 
    '出身': ['大阪', '沖縄', '北海道', '広島', '東京'], 
    '数学得点': ['50', '60', '70', '80', '90']
    })
df_eng_birth = pd.DataFrame({
    '受験者': ['Aさん', 'Bさん', 'Cさん', 'Xさん', 'Yさん'], 
    '出身': ['大阪', '沖縄', '広島', '奈良', '熊本'], 
    '英語得点': ['99', '88', '77', '66', '55']
    })

Image from Gyazo

pd.merge(df_math_birth, df_eng_birth, on=['受験者', '出身'])

Image from Gyazo

縦に結合 UNION

pd.concat([df_math, df_math, df_math], ignore_index=True)
# ignore_indexはインデックスの降り直し

Image from Gyazo

df_math.append(df_math, ignore_index=True)
# appendでも縦に結合できる

Image from Gyazo

Pythonデータ分析学習コンテンツ(私が制作したものの紹介)

以下、私が制作したものですが、初心者向けのPythonデータ分析学習コンテンツです。データの取り込み、前処理から可視化の流れを学習できる教材です。考察イメージまで記載されているのでオススメです。一部無料公開されているので、ご興味あればお試しください。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3