You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python datatable触发NameError: name 'update' is not defined怎么解决

问题原因

update、count、by均为datatable库的内置专属函数,默认不会自动导入到Python的全局命名空间中,直接调用就会触发NameError。

解决方法

有两种可用的修改方案:

  • 方案1:调用函数时增加dt.前缀(无需额外导入函数,推荐,可避免命名冲突)
    修改后的代码如下:
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[:, dt.update(filter_col = dt.count()), dt.by('A')]

运行后即可正常按A列分组,给原表新增统计每组行数的filter_col列。

  • 方案2:显式导入需要用到的datatable内置函数
    在导入库的代码段补充导入对应函数即可,原来的业务代码不需要修改:
import numpy as np
import pandas as pd
import datatable as dt
from datatable import by, count, update

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

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

补充说明

你之前执行help(update())报错也是同一个原因,如果需要查询相关函数的用法,直接调用help(dt.update)即可,不需要先执行函数。

内容的提问来源于stack exchange,提问作者ViSa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:24:05