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