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

打印pandas DataFrame时出现AttributeError:numpy.ndarray无ljust属性

AttributeError: 'numpy.ndarray' object has no attribute 'ljust' 原因及修复方案

错误原因

这个报错的核心问题是你的DataFrame(包括索引hours或x列)中存在numpy数组类型的数据。pandas在打印DataFrame时,会对每个元素调用字符串格式化方法(比如ljust)来对齐输出,但numpy数组本身没有这个字符串方法,因此触发属性错误。

通常是在设置hours为索引的过程中,不小心将其保留为numpy数组类型,而不是转成pandas支持的可格式化类型(如datetime、字符串);或者x列的数据本身就是嵌套的numpy数组。

修复方案

  • 检查并转换索引类型
    确保hours索引是pandas可处理的类型:

    # 转成datetime类型(推荐,因为是时间列)
    dfp.index = pd.to_datetime(dfp.index)
    # 或者转成字符串类型
    dfp.index = dfp.index.astype(str)
    
  • 检查并修复数据列类型
    查看x列是否为numpy数组:

    print(dfp['x'].dtype)
    

    如果确认是numpy数组,根据数据类型转换:

    # 如果是数值数组,转成float/int类型
    dfp['x'] = dfp['x'].astype(float)
    # 如果是嵌套数组,展开成字符串形式
    dfp['x'] = dfp['x'].apply(lambda arr: ', '.join(map(str, arr)))
    
  • 批量转换numpy数组元素
    不确定哪列有问题时,批量将DataFrame中的numpy数组转成字符串:

    import numpy as np
    dfp = dfp.applymap(lambda x: str(x) if isinstance(x, np.ndarray) else x)
    
  • 替代打印方式
    若不想修改数据结构,直接用字符串形式打印:

    print(dfp.to_string())
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:48:19