【发布时间】:2020-05-06 05:57:17
【问题描述】:
因此,它们是两个不同的 .csv 或 .xlsx 文件并不重要。 但是我需要一种通用的方法来判断不匹配的字段。 这两个文件在形状和大小方面都不同。
例如,文件 A 可能有 32,000 行,但文件 B 可能只有 16,000 行。 这是因为我试图从报告中比较两个不同数据库之间的偏差。 其中一个数据库是另一个数据库的来源。 例如:dbA 馈入 dbB,使 dbA 成为 dbB 的超集。
现在问题出现了,我试图在两个数据库中匹配employeeID。
例如,假设文件 A 包含以下内容
firstname, lastname, namekey, employeeID, SSN
文件 B 包含
firstname, lastname, namekey, username, email_address, phone_number, EmployeeID, SSN
我必须匹配的字段将基于employeeID=EmployeeID。 如何打印出仅显示 ID 不匹配的行的差异视图?
- 我不想要文件 A 中不在文件 B 中的行
- 我不想要文件 B 中不在文件 A 中的行
- 我只需要根据两个文件中的某些条件,员工 ID 不匹配的行
条件可以是任何东西,从技术上讲,我可以运行 SQL 命令来提取 .csv 或 .xlsx 文件,以提取一些唯一键标识符,因为我们有通用名称但不同的员工 ID 号。
所以我猜 SSN 可能是主要过滤器,说嘿,这个 ID 对于这个 SSN 是不同的。 我只需要一种方法来完成此操作并生成一个显示差异的文件。因为我熟悉很多不同的东西,所以我不太关心我必须使用什么语言。但主要是 Python 或其他一些擅长解析它并且不依赖于操作系统的工具。
到目前为止,我已经尝试过:
vimdiff
git diff --color-words="[^[:space:],]+" x.csv y.csv
他们都很好地展示了它,但我不希望不在两个文件中的行出现在输出中。否则,它只会产生很多噪音。
【问题讨论】: