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

使用read_csv处理文件名Series时仅加载首个DataFrame的问题求助

问题分析与解决

核心问题1:正则匹配逻辑错误

files.str.contains('.csv') 使用了正则表达式语法,其中 . 是通配符(可匹配任意单个字符),这会导致误匹配类似 abcscsv.txt 这类文件名,可能让你筛选出非目标CSV文件,或出现重复路径的情况。

核心问题2:路径拼接的潜在风险

直接用字符串拼接路径(working_dir+input_files)虽看似可行,但不如 os.path.join 可靠——它会自动适配不同系统的路径分隔符,避免因手动拼接导致的路径格式错误。

修正后的代码

import pandas as pd
import os

working_dir = os.getcwd()
# 用endswith筛选CSV,比正则匹配更精准
files = pd.Series(os.listdir(working_dir))
input_files = files[files.str.endswith('.csv')]
# 用os.path.join安全拼接路径
input_files = input_files.apply(lambda x: os.path.join(working_dir, x))
# 明确用lambda调用pd.read_csv,确保每个路径被独立读取
dataframes = input_files.apply(lambda x: pd.read_csv(x))

验证步骤(可选)

  • 先确认所有文件路径正确且唯一:
    print(input_files)
    
  • 读取后验证每个DataFrame的差异:
    for idx, df in dataframes.items():
        print(f"文件{input_files[idx]}的形状:{df.shape}")
        print(df.head())
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:18:27