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

创建wandb.Table时报错AssertionError: columns参数需为list对象

报错原因

wandb.Table()的第一个位置参数定义为columns,要求传入列名组成的列表。你直接将pandas DataFrame作为第一个位置参数传入时,接口会将该DataFrame识别为columns参数的值做类型校验,因此触发要求传入list对象的断言错误,和是否需要把DataFrame转成列表没有关系。

正确实现方法

不需要手动将DataFrame转为列表,使用官方支持的关键字参数传参即可直接从pandas DataFrame创建wandb.Table:

wandb.init(project='my-xgb', config={'lr': 0.01})

# 原有训练、指标日志逻辑可正常保留
# wandb.log({'loss': loss, ...})

# 显式通过dataframe参数传入你的DataFrame对象
table = wandb.Table(dataframe=df1)

如果需要自定义展示的列、或者过滤数据,也可以手动拆分传入列名和数据:

# 示例:只选取df1中指定的列创建Table
use_cols = ['feature1', 'feature2', 'label']
table = wandb.Table(
    columns=use_cols,
    data=df1[use_cols].values.tolist()
)
注意事项
  • 优先使用dataframe=关键字传参的方式,这种写法会自动保留DataFrame的列名、数据类型,不会出现字段错位、类型异常的问题,比手动转列表更稳定。
  • 创建完成的Table需要传入wandb.log()才能同步到W&B后台,例如wandb.log({"dataset_preview": table})。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:57:14