我有两个文件旧.txt以及新建.txt包含数十万个数据(大约120万个密钥和相应的数量)
在新建.txt在
key |amount
abgc-nhd|8976
mkis-plqa-d|-254
mjsnh-kis-ls|987
njud-lo-sa|5291
mkjsh-kis-ls|686
mjsnh-fis-ls|387
njudd-kid-ls|-876
nswxd-lo-sa|3191
mki-ksjd-as|-56
在旧.txt在
^{pr2}$我想比较一下这两个文件。在
我想检查旧文件中的密钥是否与新文件中的密钥匹配文件。如果是的,那我得比较一下他们的数量。在
我尝试将所有值插入字典,然后检查条目是否存在,但这需要更长的时间,系统会被挂起。在
有没有其他方法可以根据密钥比较这两个文件。在
谢谢。在
如果你能使用熊猫,你可以做如下操作:
以下为示例数据:
^{pr2}$NaN
表示该密钥只存在于一个集合中。在从您的代码片段中,我看到文件中的条目没有排序。因此,一个快速的解决方案是,如果顺序无关紧要,则对文件的条目进行排序,并比较两个文件中的行。在
排序之后,比如说,file1中的第1行以“abm…”开头,而file2中的line1以“bcn…”开头,那么就不需要对照文件2中以“a…”开头的其余条目,因为没有这样的内容。
继续下一行,然后像这样检查所有剩余的行。也可以打印那些只匹配的行并将其写入单独的文件中。此文件将只包含具有“公共”键的行,如您所愿。在
这个算法应该比O(n^2)快。在
相关问题 更多 >
编程相关推荐