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

使用create_pandas_dataframe_agent处理多DataFrames报错求助

问题解决办法

1. 修正参数类型标注

你的函数参数files标注为UploadedFile,但Streamlit上传多个文件时返回的是UploadedFile列表,类型标注错误会导致潜在逻辑问题,应改为List[UploadedFile]:

from typing import List
from streamlit import UploadedFile
import pandas as pd
from langchain.agents import create_pandas_dataframe_agent
from langchain.llms import OpenAI

def csv_tool(files: List[UploadedFile]):
    my_array = []
    for f in files:
        # 重置文件指针,避免重复读取时获取空数据
        f.seek(0)
        my_array.append(pd.read_csv(f))
    # 将DataFrame列表作为第二个参数传入
    return create_pandas_dataframe_agent(OpenAI(temperature=0), my_array, verbose=True)

2. 确保上传组件支持多文件

调用csv_tool时,必须保证传入的是多文件列表,即Streamlit的file_uploader要开启multiple=True:

import streamlit as st

uploaded_files = st.file_uploader("上传CSV文件", type="csv", multiple=True)
if uploaded_files:
    agent = csv_tool(uploaded_files)
    # 执行agent查询逻辑
    result = agent.run("你的查询语句")
    st.write(result)

3. 检查并升级LangChain版本

旧版本的create_pandas_dataframe_agent不支持传入DataFrame列表,需确保LangChain版本≥0.0.162。执行升级命令:

pip install --upgrade langchain

4. 排查其他可能问题

  • 若仍报错,可在循环中打印type(pd.read_csv(f)),确认my_array中的元素都是合法的pandas DataFrame
  • 每次读取UploadedFile前必须调用f.seek(0)重置指针,避免因指针位置问题读取空数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 12:02:53