我有一个相对较大的 csv 文件,其中包含公司、产品和价格的列表。不保证数据的顺序(即未排序):
csv#1 (big file)
...
CompanyA productB 0
CompanyA productA 0
CompanyA productC 0
CompanyB productA 0
CompanyB productB 0
CompanyB productC 0
...
“csv#1”中的一些条目包含错误数据(零)。我有第二个 csv,其中仅包含 csv#1 中包含错误数据(及其更正数据)的名称。此 csv 的排序是按价格降序排列:
csv#2 (small file - subset of csv#1)
CompanyA productC 15
CompanyA productB 10
CompanyA productA 5
CompanyB productA 3
CompanyB productB 2
CompanyB productC 1
我想遍历 csv#1,如果公司 + 产品的组合在 csv#2 中,则用 csv#2 价格覆盖。
我知道我可以通过蛮力做到这一点,为 csv#1 中的每一行迭代 csv#2。我什至可以通过将 csv#2 加载到数组中并在找到条目后删除条目来进行优化(每个组合将在 csv#1 中仅显示一次)。但我确信一定有更好的方法。
我发现一些参考资料表明这sets
是进行此类查找搜索的更有效方法:
但我不确定如何应用于sets
我的示例。set
给定多个搜索列,并且如果存在匹配项需要返回一个值,我如何在此处构建一个?还是有比 更好的方法sets
?