0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

データテーブルの連結ー縦方向1 (異なる列名をそのまま残す場合)

Last updated at Posted at 2021-02-12

テーブルとテーブルの連結には、縦方向(行が増える)と横方向(列が増える)の場合があります。
縦方向の場合は__集合__、横方向の場合は__結合__と言います。

集合には以下の3つのパターンがあります。
 和集合:複数のテーブルのレコードをすべて足す。
 積集合:複数のテーブルの共通するレコードを取り出す。
 差集合:他のテーブルと共通しないレコードを取り出す。

今回は、和集合について、SAS プログラムと SQL、および Python (Pandas) をそれぞれ用いた例を紹介します。

行いたい操作は下記です。
image.png
変数名が共通しているA列を結合します。
片方しかない変数 (B列、C列) はすべて残します。

####① SAS プログラム

data table_3;
 set table_1 table_2;
run;

set ステートメントで縦に重ねることができます。
記載されている順番で読み込み連結します。
この例ではテーブルは2つですが、任意の数のテーブルを連結できます。

####② SQL

 create table table_3 as
 select A, B from table_1
   outer union corr
 select A, C from table_2;

SELECT文 outer union corr SELECT文
→ SELECT文の結果を縦に結合します。

####③ Python (Pandas)

import pandas as pd
table_1 = pd.DataFrame({'A': [1, 2], 'B': ['AA', 'BB']})
table_2 = pd.DataFrame({'A': [2, 3], 'C': [10, 20]})
table_3 = pd.concat([table_1, table_2], ignore_index = True)

image.png
pd.concat の引数の順に沿ってテーブルが連結されます。NaN は欠損値です。

####関連記事
データテーブルの連結-縦方向 2(異なる列名を統合する場合)
データテーブルの連結-縦方向 3(積集合と差集合)
データテーブルの連結-横方向 1(完全外部結合)
データテーブルの連結-横方向 2(内部結合)
データテーブルの連結-横方向 3(左右の外部結合)
データテーブルの連結ー交差結合

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?