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

Python导出Excel遇TypeError:numpy.int64对象无len()方法

解决TypeError: object of type 'numpy.int64' has no len()问题

问题原因

data['ID'].unique()返回的元素是numpy数据类型(如numpy.int64),而Excel要求工作表名称必须是字符串类型,当代码调用len()检查工作表名称长度时,无法对numpy数值类型执行该操作,因此触发报错。

修正代码

首先需要将字典数据转换为pandas DataFrame(原代码缺失此关键步骤,否则直接操作字典会触发其他错误),同时在循环中将唯一ID转换为Python原生字符串类型:

import pandas as pd

data = {'ID': ['1', '2', '2', '3'],
        'Name': ['Jack', 'John', 'Steve', 'James']}
# 把字典转为pandas DataFrame
df_data = pd.DataFrame(data)

with pd.ExcelWriter('output.xlsx') as writer:  
    # 遍历唯一ID,转为字符串作为工作表名称
    for name in df_data['ID'].unique():
        df = df_data[df_data['ID'] == name]
        # 强制转换为字符串,避免numpy类型冲突
        df.to_excel(writer, sheet_name=str(name))

额外说明

  • 如果你的ID字段原本是整数类型(而非示例中的字符串),同样需要用str(name)转换为字符串,因为numpy.int64类型无法被Excel工作表名称解析
  • 确保已安装依赖库:执行pip install pandas openpyxl(openpyxl是写入xlsx格式文件的必需依赖)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 04:50:04