タグ: csv

  • python で csv を結合する

    pandas を使う事で容易に結合できる。

    例えば以下のような csv ファイルがあったとする

    a.csv

    1
    2
    3
    4
    NO,CODE
    1,987
    2,111
    3,222

    b.csv

    1
    2
    3
    ID1,ID2,CODE
    1,111111111111111111,111111111111111111
    2,222222222222222222,222222222222222222

    pandas を使うことで容易に結合する事ができる

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    import pandas as pd
     
    # まず2つのCSVを読み込む
    a = pd.read_csv('./a.csv', encoding='utf-8')
    b = pd.read_csv('./b.csv', encoding='utf-8')
     
    # b の ID1 を NO に置換する
    b_ = b.rename(columns={'ID1': 'NO'})
     
    # a とb 2つのCSVを結合する。結合する際のキーは NO とする
    df_merged = pd.merge(a, b_, on='NO')
     
    # 確認
    print(df_merged)
     
    # CSV ファイルとして出力する
    df_merged.to_csv("merged.csv", index=False)

    結果

    1
    2
    3
    4
    % python3 main.py
       NO  CODE_x                 ID2              CODE_y
    0   1     987  111111111111111111  111111111111111111
    1   2     111  222222222222222222  222222222222222222

    今回、結合した csv ファイルそれぞれに CODE というカラムがそれぞれに存在している。

    pd.merge の第一引数になったファイルは _x という suffix がつき、

    第二引数になったファイルには _y という suffix が付く。