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

如何用Python/Pandas实现按CSV文件名自动命名DataFrame

自动用CSV文件名命名DataFrame的解决方案

你提到的手动逐个命名DataFrame确实挺麻烦的,尤其是文件数量多的时候。其实最安全也最方便的方式是用字典来存储这些DataFrame,键就是你生成的文件名(去掉后缀),值就是对应的DataFrame,这样既清晰又方便后续调用。

实现代码

import pandas as pd
import glob
import os

# 用户输入路径
path = 'C:/Users/XXXXX/Desktop/datasets/world_bank_data/'

# 获取所有CSV文件路径
filenames = glob.glob(path + '/*.csv')

# 创建字典存储DataFrame,键为文件名(无后缀)
df_dict = {}
for file in filenames:
    # 提取文件名(去掉路径和后缀)
    name = os.path.splitext(os.path.basename(file))[0]
    # 读取CSV并存入字典
    df_dict[name] = pd.read_csv(file)

如何调用这些DataFrame

之后你想使用哪个DataFrame,直接通过字典的键来访问就行,比如:

# 访问名为'Country'的DataFrame
print(df_dict['Country'].head())

# 遍历所有DataFrame做批量操作
for df_name, df in df_dict.items():
    print(f"处理DataFrame: {df_name}")
    # 这里可以加你的批量处理逻辑,比如查看基本信息
    df.info()

为什么不直接创建独立变量?

你可能会想能不能直接把这些名字变成全局变量(比如直接生成Country = pd.read_csv(...)),虽然可以用globals()或者locals()来实现,但这种方式不推荐:

  • 容易污染全局命名空间,不小心就会覆盖已有的变量
  • 代码可读性和可维护性差,后续很难追踪这些变量的来源

如果非要尝试这种方式,代码大概是这样(谨慎使用):

for file in filenames:
    name = os.path.splitext(os.path.basename(file))[0]
    globals()[name] = pd.read_csv(file)

# 之后可以直接用变量名访问
print(Country.head())

总的来说,用字典存储是最稳妥的方案,既满足了自动命名的需求,又能让代码更规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 07:42:40