我正在使用 Blaze (0.6.3) 和 Anaconda 2.1.0(在 Python 2.7.8 上)。我正在尝试使用基于表行日期的过滤器。
模拟 TSV 文件如下:
name amount date
foo 100 2001-05-11 08:54:48.063856
bar 1000 0001-01-01 00:00:00.0
baz 10000 1970-01-02 00:00:00.0
蟒蛇代码是
from blaze import *
from datetime import datetime
data = Table(CSV('mock.tsv'))
data[data.name > 'bar']
data[data.amount > 1000]
data[data.date > datetime(1970,1,1)]
前两个过滤器没问题,但第三个会抛出SyntaxError
.
这一切似乎归结为以下几点:
lambda (name, amount, date): date > (1970-01-01 00:00:00)
这在语法上是无效的。不知何故,某处,datetime(1970,1,1)
被翻译成datetime(1970-01-01 00:00:00)
,然后datetime
被遗忘了。Blaze 本身可以识别date
带有?datetime
类型的列,这正是我想要的,但是在比较中它失败了。
我是否以错误的方式使用它?