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