"NameError: name 'update' is not defined" Error when using datatable

"NameError: name 'update' is not defined" Error when using datatable

我第一次尝试使用 python 中的数据表,并按照此 link 中的示例进行操作:Grouping with by() 以探索有关数据表的更多信息,但我得到了 NameError在代码下方尝试时。

import numpy as np
import pandas as pd
import datatable as dt

df = dt.Frame([[1, 1, 5], [2, 3, 6]], names=['A', 'B'])

df[:, update(filter_col = count()), by('A')]

错误:

--------------------------------------------------------------------------- NameError                                 Traceback (most recent call
last) ~\AppData\Local\Temp/ipykernel_2040/2701559568.py in <module>
----> 1 df[:, update(filter_col = count()), by('A')]

NameError: name 'update' is not defined

这在上面显示的示例中工作正常 link 但我不确定为什么会收到此错误。还尝试了这方面的帮助:

help(update())

但是出现这个错误:

--------------------------------------------------------------------------- NameError                                 Traceback (most recent call
last) ~\AppData\Local\Temp/ipykernel_2040/1402169417.py in <module>
----> 1 help(update())

NameError: name 'update' is not defined

函数update不是直接导入的,而是通过datatabledt)导入的。您可以使用 dt.update.

访问它

您没有使用正确的名称来访问 update()。第一个例子有:

from datatable import (dt, f, by, ifelse, update, sort,
                       count, min, max, mean, sum, rowsum)

意味着他们可以将 datatable.update 称为 update

但是你的导入是这样的:

import datatable as dt

意味着要访问 datatable.update,您必须使用 dt.update。与 datatable.countdatatable.by 相同:

所以解决方案看起来像:

df[:, dt.update(filter_col = dt.count()), dt.by('A')]