比较不完整的date列表和参考date列表

我知道这是可能的。 我知道有一个简单的解决scheme,但我所尝试的一切都失败了。

这是交易:

我有一个Excel格式的数据集,包含939,019个气象站logging(行)。 date/时间间隔从1993年1月29日16:30至2013年6月30日24:00,每10分钟一class。 如果我做math,显然有缺失的行。

我需要知道失踪的date/时间。 如果我有一些能够返回缺失间隔的开始date/时间和结束date/时间的小程序/脚本,那将会很酷。 不过,我只想对缺失的date/时间列表感到满意。

为了弄清楚,我想,哦,我需要的只是一个参考列表,用来比较列表中缺less的date,并有一些标记或返回空白的方法。

所以,在Excel中,我创build了一个与气象站数据相邻的列,并在第一行填入开始date。 随后的行只是添加10分钟到它上面的单元格。 不幸的是,在这20年的时间里,10分钟的时间间隔是excel可以处理的。 别担心。 它变得足够接近(2013年6月6日10:50)。

无论如何,我尝试了excel中的MATCH函数,但是这样做太长了。 在我input的时候,它已经达到了3%(使用12个处理器)。 我有30个气象站(date范围相同)要做。 我希望我能find一个更快的方法来做到这一点。

所以,我接下来尝试了Acess。 我导入的文件(气象站数据和一个单独的参考date列表)在Access中的表,并认为我只是做一个UNMATCHED查询,但由于某种原因(无论我如何格式date列(date/时间,序列数字),查询返回几乎所有行不匹配。不知道为什么,它确实做到了这一点,但显然是错误的。

我然后想 – Python! 那会做的,对吧? 但我是一个GIS人员。 我只使用Python示例脚本来运行地理处理工具(或使用ESRi的模型构build器)。 我真的不知道从哪里开始。 任何指针?

首先,查看python-excel.org的xlrdxlwtxlutils模块和文档(我假设你正在处理.xls文件,而不是.xlsx – 如果是,请查看openpyxl )。 一旦你安装了它们,阅读文档熟悉它们,它们不会太长或太复杂。 实际的比较不应该太难:你所要做的只是读取单元格N,将它的值与单元格N + 1比较,看看差异是否是10分钟。 如果是的话,那就去下一个值吧。 如果没有,将值打印到一个新的工作簿(或任何你想做的事情 – 插入一个空白的行与缺less的时间,再次计算,或者你有什么)。

我不知道需要多长时间才能完成大约3000万条logging,但是我敢打赌,这比通过Excel本身做得更快。

祝你好运!