2017-09-22 184 views
1

我有一个数据集,超过100MB的大小和许多文件数量。这些文件有20多列,大约100多万行。从csv删除重复的行[标题+内容]

与数据的主要问题是:

  1. 头被重复 - 重复的标题行中充满即数据
  2. 重复行从所有列在该特定行是重复的。

不打扰哪一列或多少列......只需要保留第一次出现,然后删除其余部分。

我确实发现了太多的例子,但我在寻找的是输入和输出都需要是相同的文件。寻求帮助的唯一原因是,我想要编辑同一个文件。

样品输入:这里 https://www.dropbox.com/s/sl7y5zm0ppqfjn6/sample_duplicate.csv?dl=0

欣赏在帮助提前感谢..

+0

输入文件如果标题是重复的,E.I.同样,你可以只存储第一行,循环每一个连续的行,并将其添加到一个新的数组,如果它不同于第一行? – OptimusCrime

+0

@OptimusCrime其实它是已经被下载的网络刮数据唱几个循环和条件..并且对于每种情况一个新的头正在产生..我试图从下载端修复,我无法实现,因此尝试编写一个单独的程序,将删除重复并将更新相同的文件。 –

+0

我仍然没有看到问题。循环并检查相同的标题。您也可以循环并检查相同的行/行。谷歌搜索应该返回一百万个结果,用Python找到并删除文件中的重复行 – OptimusCrime

回答

1

如果重复标头的数量是已知的,恒定的,跳过那些行:

csv = pd.read_csv('https://www.dropbox.com/s/sl7y5zm0ppqfjn6/sample_duplicate.csv?dl=1', skiprows=4)

或者,根据所有列删除所有重复项的奖金,请执行以下操作:

csv = pd.read_csv('https://www.dropbox.com/s/sl7y5zm0ppqfjn6/sample_duplicate.csv?dl=1') csv = csv.drop_duplicates()

现在你仍然对数据的标题行,就跳过它: csv = csv.iloc[1:]

你当然可以用它覆盖与pandas.DataFrame.to_csv

+0

谢谢你的解决方案..但标题重复不仅在一开始,他们也可以看到某处中间某个地方一排和其他地方二三。等如 –

+0

如果它适合你,随时标记为接受的解决方案。谢谢! – TomTom101

+0

它并没有在我的情况..但肯定在其他一些情况下,它应该是有用的..再次感谢你.. –