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

Heroku应用刷新数据后出现KeyError: 'txs_date'问题求助

解决KeyError: 'txs_date'问题

这个错误的核心原因是刷新后的DataFrame里不存在'txs_date'列,结合你的情况(之前正常、Streamlit上能运行),可以从以下几个方向排查和修复:

  • 核对新数据源的列结构:直接查看刷新后的数据文件或数据库表,确认是否存在'txs_date'列,注意列名的大小写、下划线是否和代码里的完全一致(比如有没有被改成'txsDate'、'transaction_date'这类变体)。
  • 检查数据加载逻辑:看看数据刷新时的读取代码,有没有使用usecols、drop这类过滤列的操作,不小心把'txs_date'排除了;或者有没有重命名列的步骤,却没同步到后续处理逻辑里。
  • 给代码加列存在性校验:在处理日期列之前先判断列是否存在,避免直接访问报错,示例代码:
    # 先检查列是否存在
    if 'txs_date' not in df.columns:
        # 可以根据实际情况处理,比如抛出明确提示、尝试兼容相似列名
        raise ValueError("数据源缺少必要列:txs_date,请检查数据刷新结果")
    # 再执行日期转换
    df['txs_date'] = pd.to_datetime(df['txs_date'], format='%Y-%m-%d')
    
  • 排查Heroku的数据源差异:确认Heroku上拉取的刷新数据和本地/Streamlit用的是同一个版本,会不会是Heroku的缓存没更新?可以在代码里临时添加print(df.columns),然后查看Heroku应用日志,看看实际加载的列名是什么。
  • 检查数据刷新脚本:如果是自动脚本刷新数据,确认脚本有没有修改列结构,比如导出数据时遗漏了'txs_date'列,或者做了格式转换导致列名丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 01:35:58