我有一个有趣的问题。如何使用Python比较2个非常大的矩阵
我有一个非常大的(大于300MB,超过10,000,000行/行的文件)CSV文件与时间序列数据点内。每个月我都会得到一个新的CSV文件,与之前的文件几乎相同,只是添加和/或删除了一些新行,并且可能修改了一些行。
我想使用Python来比较2个文件,并确定哪些行已被添加,删除和修改。
问题是该文件非常大,所以我需要一个能够处理大文件大小并在合理时间内有效执行的解决方案,越快越好。一个什么样的文件及其新文件可能看起来像
例子:
旧文件
A,2008-01-01,23
A,2008-02-01,45
B,2008-01-01,56
B,2008-02-01,60
C,2008-01-01,3
C,2008-02-01,7
C,2008-03-01,9
etc...
的新文件
A,2008-01-01,23
A,2008-02-01,45
A,2008-03-01,67
(添加)
B,2008-01-01,56
B,2008-03-01,33
(移除并添加)
C,2008-01-01,3
C,2008-02-01,7
C,2008-03-01,22
(经修饰)
etc...
基本上2个文件可以被看作是需要比较矩阵,我已经开始使用PyTable的思维。任何想法如何解决这个问题将不胜感激。
您能给我们介绍一下你们之间是如何决定多一点信息“修改“或”添加“?它是基于日期吗? – JudoWill 2010-09-21 13:58:14
对不起,“修改”我的意思是只有最后一列值的变化。因此,series_id(第一列)和日期(第二列)保持不变。 – sizeight 2010-09-21 14:02:42