日: 2022年2月11日

  • python で csv を結合する

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

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

    a.csv

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

    b.csv

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

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

    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)
    

    結果

     % 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 が付く。