したがって、csv リーダー/ライターを使用して、Python でディレクトリ内のすべての CSV を取得して結合し、2 番目の列に他の行の値の重複を含む行を除外します。
ここに私の動かないスクリプトがあります:
import csv
import glob
with open('merged.csv','a') as out:
seen = set()
output = []
out_writer = csv.writer(out)
csv_files = [f for f in glob.glob('*.csv') if 'merged' not in f]
#csv_files = glob.glob('*.csv')
# I'd like to use all files including the output so that I don't
# have to rename it when reusing the script - it should dupe-filter itself!
for filename in csv_files:
with open(filename, 'rb') as ifile:
read = csv.reader(ifile, delimiter=',')
for row in read:
if row[1] not in seen:
seen.add(row[1])
if row: #was getting extra rows
output.append(row)
out_writer.writerows(output)
シンプルなものが欠けているように感じます。私のファイルのサイズはそれぞれ約 100MB で、最終的にはこれを自動化し、異なるコンピューターがマージされたファイルを重複チェックのために共有できるようにしたいと考えています。
余分なクレジットを得るために、これを変更して、row[1]
との両方row[2]
が共通している行を確認するにはどうすればよいですか? (もちろん、重複フィルターと自己包含が機能したら...)