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

pandas读取CSV打印时出现ufunc 'add'类型不匹配错误咨询

报错具体含义

该报错是NumPy底层通用计算函数抛出的类型匹配错误:执行加法(add)操作时,两个参与运算的操作数类型分别是长度为19的Unicode字符串类型(dtype('<U19'))和64位整数类型(dtype('int64')),NumPy没有预置这两种类型直接做加法运算的实现逻辑,因此运算中断抛出错误。
其中dtype('<U19')对应的就是代码里通过strftime("%Y-%m-%d %H:%M:%S")生成的固定长度时间字符串,和格式长度完全匹配。

触发原因
  • 报错和pd.read_csv读取CSV文件的逻辑无关,文件读取流程已经正常执行完成,问题出在读取完成后的打印逻辑。
  • 出错代码为print(now.strftime("%Y-%m-%d %H:%M:%S") + df_short):Python中+运算符用于字符串拼接时,要求两侧操作数均为字符串类型,直接将字符串和pandas DataFrame对象做+运算时,pandas会将该操作广播到DataFrame的每一个元素,逐元素执行加法。
  • 截取的CSV前5行数据(df_short)中存在存储为int64类型的整数列,字符串和整数无法直接通过+拼接,触发类型不匹配报错。
修复方法

选择任意一种修改方式即可解决问题:

  • 方法1:将DataFrame作为print的独立参数传入,不需要手动做字符串拼接,print会自动将所有传入参数转为字符串后输出,修改后的对应代码行为:
print(now.strftime("%Y-%m-%d %H:%M:%S"), df_short)
  • 方法2:如果需要严格控制拼接格式,先将DataFrame显式转换为字符串格式后再做拼接,修改后的对应代码行为:
print(now.strftime("%Y-%m-%d %H:%M:%S") + '\n' + df_short.to_string())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 08:03:19