{"record":{"id":"c019f27ca9982130","repo":"run-llama/llama_index","slug":"pandas-is-required-to-get-results-dataframes-plea","errorCode":null,"errorMessage":"Pandas is required to get results dataframes. Please install it with `pip install pandas`.","messagePattern":"Pandas is required to get results dataframes\\. Please install it with `pip install pandas`\\.","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"error","filePath":"llama-index-core/llama_index/core/evaluation/eval_utils.py","lineNumber":62,"sourceCode":"    names: List[str],\n    metric_keys: List[str],\n) -> Any:\n    \"\"\"\n    Get results df.\n\n    Args:\n        eval_results_list (List[Dict[str, List[EvaluationResult]]]):\n            List of evaluation results.\n        names (List[str]):\n            Names of the evaluation results.\n        metric_keys (List[str]):\n            List of metric keys to get.\n\n    \"\"\"\n    try:\n        import pandas as pd\n    except ImportError:\n        raise ImportError(\n            \"Pandas is required to get results dataframes. Please install it with `pip install pandas`.\"\n        )\n\n    metric_dict = defaultdict(list)\n    metric_dict[\"names\"] = names\n    for metric_key in metric_keys:\n        for eval_results in eval_results_list:\n            mean_score = np.array(\n                [r.score or 0.0 for r in eval_results[metric_key]]\n            ).mean()\n            metric_dict[metric_key].append(mean_score)\n    return pd.DataFrame(metric_dict)\n\n\ndef default_parser(eval_response: str) -> Tuple[Optional[float], Optional[str]]:\n    \"\"\"\n    Default parser function for evaluation response.\n","sourceCodeStart":44,"sourceCodeEnd":80,"githubUrl":"https://github.com/run-llama/llama_index/blob/afd0fef371831f9bda13e5af7167cf4e981278ab/llama-index-core/llama_index/core/evaluation/eval_utils.py#L44-L80","documentation":"Raised by get_results_df in eval_utils when pandas is not installed in the environment. The function needs pandas only to build the summary DataFrame of mean metric scores, so the core evaluation works without it — only the dataframe aggregation step fails.","triggerScenarios":"Calling get_results_df(eval_results_list, names, metric_keys) in an environment where the pandas import fails (not installed, or a broken install).","commonSituations":"Running llama-index-core in a slim environment/容器 that excluded optional extras; CI images trimmed for size; installing llama-index-core alone, since pandas is not a hard dependency; a partially broken pandas install (wrong ABI/wheel).","solutions":["Install pandas: pip install pandas (or add it to your project dependencies).","If you cannot install it, compute the means yourself from eval_results (score fields) without get_results_df.","Verify the install with python -c \"import pandas\" to catch broken installs."],"exampleFix":"# before (ImportError at get_results_df)\ndf = get_results_df(results, names, metric_keys)\n\n# after\n# shell: pip install pandas\ndf = get_results_df(results, names, metric_keys)","handlingStrategy":"try-catch","validationCode":"try:\n    import pandas  # noqa\n    HAS_PANDAS = True\nexcept ImportError:\n    HAS_PANDAS = False\n\nif not HAS_PANDAS:\n    # compute means manually or skip get_results_df\n    ...","typeGuard":null,"tryCatchPattern":"try:\n    df = get_results_df(results, names, metric_keys)\nexcept ImportError:\n    df = None  # or aggregate scores with statistics.mean yourself","preventionTips":["Declare pandas in your project dependencies if you report metrics as dataframes.","Pin pandas to a version compatible with your numpy install to avoid broken wheels."],"tags":["optional-dependency","pandas","environment"],"backgroundTag":null,"analyzedSha":"afd0fef371831f9bda13e5af7167cf4e981278ab","analyzedAt":"2026-08-15T05:42:58.429Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}