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

如何读取多个CSV文件并存入独立Pandas DataFrame?文件读取报错排查

问题分析与修正

你的代码存在三个核心问题,导致无法正确读取CSV文件:

  • 存储了错误的对象:lijst.append(file)存储的是编码后的字节对象,不是可直接使用的字符串文件名,后续读取时无法识别。
  • 缺少完整文件路径:仅存储文件名,Python会默认在当前工作目录查找文件,而非你指定的C:\path\UV目录。
  • 循环变量复用错误:第二个循环中始终使用最后一次循环的filename变量,没有遍历列表中的每个文件。

修正后的代码

方式1:将所有DataFrame存入列表

import pandas as pd
import os

path = r'C:\path\UV'
dfs = []  # 存储所有CSV对应的DataFrame

for filename in os.listdir(path):
    if filename.endswith(".csv"):
        # 拼接完整文件路径,确保Python能找到目标文件
        full_file_path = os.path.join(path, filename)
        # 读取CSV并添加到列表
        df = pd.read_csv(full_file_path)
        dfs.append(df)

# 此时dfs中的每个元素对应一个CSV文件的DataFrame

方式2:用字典存储(可通过文件名快速定位DataFrame)

如果需要区分不同文件对应的DataFrame,用字典存储更方便:

import pandas as pd
import os

path = r'C:\path\UV'
df_map = {}  # 键是文件名,值是对应的DataFrame

for filename in os.listdir(path):
    if filename.endswith(".csv"):
        full_file_path = os.path.join(path, filename)
        df_map[filename] = pd.read_csv(full_file_path)

# 例如读取UltraViolet1.csv对应的DataFrame:df_map["UltraViolet1.csv"]

关键修正点说明

  1. 直接遍历os.listdir(path)获取字符串文件名,无需额外编码解码,简化逻辑。
  2. 必须用os.path.join()拼接目录路径和文件名,生成完整的文件路径,避免Python找错位置。
  3. 遍历过程中直接完成文件读取和存储,避免后续循环的变量错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:27:20