【发布时间】:2010-09-21 13:14:46
【问题描述】:
我有一个有趣的问题。
我有一个非常大(大于 300MB,文件中超过 10,000,000 行/行)的 CSV 文件,其中包含时间序列数据点。每个月我都会收到一个新的 CSV 文件,它与之前的文件几乎相同,除了添加和/或删除了几行新行,并且可能修改了几行。
我想使用 Python 来比较这 2 个文件,并确定哪些行被添加、删除和修改。
问题是文件非常大,所以我需要一个能够处理大文件大小并在合理时间内高效执行的解决方案,越快越好。
文件及其新文件的外观示例:
旧文件A,2008-01-01,23A,2008-02-01,45B,2008-01-01,56B,2008-02-01,60C,2008-01-01,3C,2008-02-01,7C,2008-03-01,9etc...
新文件A,2008-01-01,23A,2008-02-01,45A,2008-03-01,67 (已添加)B,2008-01-01,56
@ 987654333@ (删除和添加)C,2008-01-01,3C,2008-02-01,7C,2008-03-01,22 (修改)etc... p>
基本上这2个文件可以看作是需要比较的矩阵,我已经开始考虑使用PyTable了。任何有关如何解决此问题的想法将不胜感激。
【问题讨论】:
-
您能告诉我们更多关于您是如何决定“修改”还是“添加”的信息吗?它是基于日期的吗?
-
对不起,“修改”我的意思是只有最后一列的值发生了变化。所以 series_id(第一列)和 date(第二列)保持不变。
标签: python django matrix data-structures