【发布时间】:2018-02-28 10:27:45
【问题描述】:
我有两个 CSV,每个都有大约 1M 行,n 列,具有相同的列。我想要最有效的方法来比较这两个文件,以找出可能存在的差异。我更喜欢用 Python 解析这些数据,而不是使用任何与 excel 相关的工具。
【问题讨论】:
-
请在输入文件中添加示例代码和几行代码。
标签: python algorithm csv search
我有两个 CSV,每个都有大约 1M 行,n 列,具有相同的列。我想要最有效的方法来比较这两个文件,以找出可能存在的差异。我更喜欢用 Python 解析这些数据,而不是使用任何与 excel 相关的工具。
【问题讨论】:
标签: python algorithm csv search
一种有效的方法是从第一个文件中读取每一行(行数较少)并保存在像 Set 或 Dictionary 这样的对象中,您可以使用 O(1) 复杂度进行访问。
然后从第二个文件中读取行并检查它是否存在于 Set 中。
【讨论】:
你在用熊猫吗?
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()
【讨论】:
df['column_name'] = df['column_name'].str.lower() 将所有字符串值变为小写。