在Python中比较两个几乎相同的CSV的最有效方法?

时间:2017-09-19 14:59:04

标签: python algorithm csv search

我有两个CSV,每个有大约1M行,n列,列相同。我想要最有效的方法来比较两个文件,找出可能存在差异的地方。我宁愿用Python解析这些数据,而不是使用任何与excel相关的工具。

2 个答案:

答案 0 :(得分:2)

你在使用熊猫吗?

import pandas as pd
df = pd.read_csv('file1.csv')
df = df.append(pd.read_csv('file2.csv'), ignore_index=True)

# array indicating which rows are duplicated
df[df.duplicated()]

# dataframe with only unique rows
df[~df.duplicated()]

# dataframe with only duplicate rows
df[df.duplicated()]

# number of duplicate rows present
df.duplicated().sum()

答案 1 :(得分:1)

一种有效的方法是从第一个文件中读取每一行(行数较少)并保存在Set或Dictionary之类的对象中,您可以使用O(1)复杂性进行访问。

然后从第二个文件中读取行并检查它是否存在于Set中。