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

调用TensorFlow的pandas_input_fn时报错dict对象无index属性如何解决

报错根因

tf.compat.v1.estimator.inputs.pandas_input_fn的x入参要求必须传入Pandas DataFrame类型对象,你代码中给x传递的是Python字典{'x': train_x},字典对象本身不存在index属性,因此触发AttributeError: 'dict' object has no attribute 'index'报错。

解决方法

根据你的train_x实际格式选择对应修改方案:

  • 如果train_x是单维度的数组、列表或Pandas Series:将其封装为Pandas DataFrame后传入即可,修改x参数行代码为:
x = pd.DataFrame({'x': train_x})

注意提前导入Pandas依赖:import pandas as pd

  • 如果train_x本身就是已经结构化的多列Pandas DataFrame:直接传递train_x本身即可,无需额外套字典:
x = train_x

同时需要同步确认y参数传入的train_y为Pandas Series类型,且索引和x的DataFrame索引对齐,避免后续出现其他匹配错误。

修改后完整示例代码
import pandas as pd
import tensorflow as tf

# 对应替换为你自己的train_x、train_y、logging_hook、detector定义即可
train_input_fn = tf.compat.v1.estimator.inputs.pandas_input_fn(
        x = pd.DataFrame({'x': train_x}),
        y = train_y,
        batch_size = 100, 
        num_epochs = None, 
        shuffle = True
        )
detector.train(input_fn = train_input_fn, steps = 1, hooks = [logging_hook])

内容的提问来源于stack exchange,提问作者Muhammad Muttaqin - I4II7I38

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:57:03