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

读取指定路径下全部csv文件为pandas dataframe时df未定义报错如何解决

错误原因
  • 你未对遍历到的文件做csv格式过滤,如果input_path对应路径及其子目录下不存在任何csv文件,内层循环中的df = pd.read_csv(data)代码完全不会执行,df变量从未被定义,后续执行print(df)就会触发该NameError。
  • 即使路径下存在csv文件,你当前的写法每次循环都会用新读取的csv覆盖df变量,最终只能保留最后一个csv的内容,不符合读取所有csv文件的需求。
修复方案

你可以按照需求选择以下两种修复逻辑:

情况1:需要把所有csv文件合并为一个DataFrame

这是最常用的场景,修复后代码如下:

import os
import pandas as pd

input_path = "../samples/input_data/"
df_list = []  # 提前初始化存储所有csv的DataFrame列表

for root, dirs, files in os.walk(input_path):
    for file in files:
        # 仅读取csv后缀的文件
        if file.endswith(".csv"):
            current_df = pd.read_csv(os.path.join(root, file))
            df_list.append(current_df)

if df_list:
    # 合并所有DataFrame,忽略原索引避免冲突
    df = pd.concat(df_list, ignore_index=True)
    print(df)
else:
    print("指定路径下未找到任何csv文件,请检查input_path是否配置正确")

情况2:需要单独保留每个csv对应的DataFrame

直接使用df_list中的元素即可,列表顺序和文件遍历顺序一致,比如要打印第一个读取的csv,就调用print(df_list[0])。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:15:04