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

读取本地CSV文件时动态命名Pandas DataFrame重复问题求助

问题分析与解决方法

问题根源

原代码有两个核心问题:

  • 嵌套循环逻辑错误:外层遍历每个CSV文件时,内层又遍历所有预期的DataFrame名称,导致每个文件都会覆盖所有名称对应的变量,最终所有变量都指向最后一个读取的CSV内容。
  • 变量赋值方式错误:循环里直接给name变量赋值,只是修改了循环变量的引用,并没有真正创建你想要的fifa_15、fifa_16这类独立变量。

正确实现方式

方式一:用字典存储(推荐)

用字典映射文件名和对应的DataFrame,管理起来更清晰,还能避免变量名混乱:

import pandas as pd
from glob import glob

files = glob('*.csv')
# 先给文件排序,保证和年份顺序对应(glob返回的文件顺序不一定是按年份排的)
files.sort()
df_dict = {}

# 按顺序配对文件和年份
for file, year in zip(files, range(15, 23)):
    df_name = f'fifa_{year}'
    df_dict[df_name] = pd.read_csv(file)

# 访问示例:df_dict['fifa_15']、df_dict['fifa_16']

方式二:动态创建独立变量(不推荐)

如果一定要生成fifa_15这类独立变量,可以通过globals()实现:

import pandas as pd
from glob import glob

files = glob('*.csv')
files.sort()

for file, year in zip(files, range(15, 23)):
    df_name = f'fifa_{year}'
    globals()[df_name] = pd.read_csv(file)

# 现在可以直接用fifa_15、fifa_16这些变量

注意事项

  • 必须给files排序,不然glob返回的文件顺序可能乱掉,导致DataFrame和年份不匹配。
  • 优先选字典存储的方式,动态创建变量会污染命名空间,文件多了之后很难维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:18:30