多くの列と数百の行を持つCSVがあります。列はCompanyName, Website, Address, PhoneNumber, Email1, Email2, Email3
です。CSVで重複情報のある行を削除するにはどうすればよいですか?
私が必要とするのは、重複した情報を持つすべての行を削除することです。問題は、行が重複するためには、すべてのエントリが同一である必要はなく、少なくとも1つが同一である必要があることです。
ここでは、CompanyName
が異なる点を除いて、ほぼすべて同じ情報を持つ2つの行の例を示します。これはこの問題の1つの順列です。
だから、重要なことは、これらの行の1つが削除されるべき、基本的に1列に同じ値を共有する任意の2列です。
したがって、2つの行が同じCompanyName
,Email Address
,Phone Number
などの場合は、1を削除する必要があります。
このアプローチにはどのような方法が最適ですか?
編集1
私は排除重複行を持つ新しい、変更されたCSVを作成好むだろう。主に既存のCSVに損害を与えたり、腐敗させたりするリスクはありません。
編集2
私が本当にやろうとしていますが、私は800行のCSVに他のすべての行に対して、各行を比較していますN + 1問題を回避されることに注意してください。それとも、私の目的があればそれはできないのですか?
このデータはどうしていますか?それは一度だけですか、定期的にCSVをインポートしていますか? –
@EduardoSampaioこのようなCSVを定期的にインポートします。私はこれらのCSVを作成するスクリプトを用意していますので、それらをサニタイズする方法を書いてみたいと思います。 – marcamillion