python csvファイルを結合
csvを結合する方法
- ライブラリpandasを使う方法
- open関数を使う方法
ライブラリpandasを使う方法
import pandas as pd csv_list = ['csv1_path', 'csv2_path', 'csv3_path', 'csv4_path'] pd_list = [pd.read_csv(file) for file in csv_list] df = pd.concat(pd_list) df.to_csv("hoge.csv", index=False, encoding="utf-8")
この方法は時間がかかる恐れがある。以下の方法もあるので試してみる。どちらが速いか分かったら追記しようと思う。
open関数を使う方法
下記の方法はpandasを使った場合と同様、一番目のファイルのヘッダーは残し、追加するファイルのヘッダーは削除して追加するやり方になる。ヘッダーを排除するためにreadlines()で各行をリスト化し、ヘッダーを削除したリストとして[1:-1]でスライスしている。この方法を使うとpandasより速くできるか検証が必要である。
merge_csv_list = ['csv1_path', 'csv2_path', 'csv3_path', 'csv4_path'] for n in range(0,len(merge_csv_list)): if n == 0: base_file = open(merge_csv_list[0], "a", encoding="utf-8") continue else: add_file = open(merge_csv_list[n], "r", encoding="utf-8") base_file.write(",".join(add_file.readlines()[1:-1])) add_file.close() continue base_file.close()