llama_index [Bug]: Pandas查询引擎没有给出正确的响应(尤其是通过API暴露时,在本地Jupyter笔记本中运行良好)

qnzebej0  于 2个月前  发布在  其他
关注(0)|答案(1)|浏览(26)

Bug描述

如果pandas查询引擎在jupyter笔记本中运行,它会给出正确的结果,但如果作为单个.py文件运行,它不会给出正确的结果。

版本

llama-index==0.10.50

重现步骤

将其制作为单个.py文件

相关日志/回溯

(venv) PS C:\Users\Nitheeswaran\Desktop\csv> & c:/Users/Nitheeswaran/Desktop/csv/venv/Scripts/python.exe c:/Users/Nitheeswaran/Desktop/csv/s.py
Traceback (most recent call last):
  File "C:\Users\Nitheeswaran\Desktop\csv\venv\lib\site-packages\pandas\core\indexes\base.py", line 3805, in get_loc
    return self._engine.get_loc(casted_key)
  File "index.pyx", line 167, in pandas._libs.index.IndexEngine.get_loc
  File "index.pyx", line 196, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\\_libs\\hashtable_class_helper.pxi", line 7081, in pandas._libs.hashtable.PyObjectHashTable.get_item
  File "pandas\\_libs\\hashtable_class_helper.pxi", line 7089, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'Time generated'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Nitheeswaran\Desktop\csv\venv\lib\site-packages\llama_index\experimental\query_engine\pandas\output_parser.py", line 54, in default_output_processor
    output_str = str(safe_eval(module_end_str, global_vars, local_vars))
  File "C:\Users\Nitheeswaran\Desktop\csv\venv\lib\site-packages\llama_index\experimental\exec_utils.py", line 159, in safe_eval
    return eval(__source, _get_restricted_globals(__globals), __locals)
  File "<string>", line 1, in <module>
  File "C:\Users\Nitheeswaran\Desktop\csv\venv\lib\site-packages\pandas\core\frame.py", line 4102, in __getitem__
    indexer = self.columns.get_loc(key)
  File "C:\Users\Nitheeswaran\Desktop\csv\venv\lib\site-packages\pandas\core\indexes\base.py", line 3812, in get_loc
    raise KeyError(key) from err
KeyError: 'Time generated'
The earliest log entry was generated at [insert timestamp here] and the latest log entry was generated at [insert timestamp here].
cbjzeqam

cbjzeqam1#

你好,@Nitheeswaran-E! 我在这里,以帮助您解决使用Pandas查询引擎时在Jupyter笔记本中可以正常工作,但作为独立的.py文件执行时会抛出KeyError的问题。请确保您的查询中使用的列名与DataFrame中的列名完全匹配。这包括检查任何前导或尾随空格、大小写敏感性和特殊字符。
在您的案例中,KeyError: 'Time generated'建议在运行独立脚本时,'Time generated'列可能不存在于DataFrame中。请验证独立脚本中的DataFrame df是否正确定义并包含'Time generated'列。
您可以在查询之前添加调试语句来打印DataFrame列,以确认DataFrame结构:

print(df.columns)

这将帮助您确保在运行独立脚本时,DataFrame具有预期的列。

  • 要继续与Dosu交谈,请提及@dosu。*

相关问题