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

如何在Python中动态读取后缀名变化的CSV文件?

解决Python动态读取CSV并创建对应DataFrame的问题

嘿,我懂你碰到的麻烦了——你原来的代码里想用循环变量直接命名DataFrame,比如{n} = pd.read_csv(...),但Python根本认不出这种写法,这确实挺让人头疼的。不过别担心,咱有个更靠谱的办法,用字典来存储这些DataFrame就完美解决了!

为什么原来的方法行不通?

直接用{n}作为变量名的写法是错误的,Python不支持这种动态创建变量的方式。虽然有个偏门技巧(比如用globals())能实现,但非常不推荐——它会污染你的全局命名空间,变量多了之后根本没法管理,还容易和现有变量重名出bug。

正确的实现方式

用字典来存储每个UF代码对应的DataFrame,既清晰又方便后续调用,代码如下:

import pandas as pd

# 你的UF列表,我给改了个更清晰的变量名
uf_codes = ['AC', 'AL', 'AP', 'AM', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MT', 'MS', 'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RS', 'RO', 'RR', 'SC', 'SP1', 'SP2', 'SE', 'TO']
# 创建一个空字典,用来存所有的DataFrame
df_dict = {}

for code in uf_codes:
    # 用f-string格式化文件名,确保每个UF对应正确的文件
    csv_file = f'Basico_{code}.csv'
    # 读取CSV文件,把结果存入字典,键就是UF代码
    df_dict[code] = pd.read_csv(csv_file, encoding='latin1', sep=';', header=0)

怎么调用这些DataFrame?

之后你要访问某个UF的数据集,直接通过字典的键来取就行:

  • 比如要获取SP1的DataFrame:df_dict['SP1']
  • 要查看AC的前5行:df_dict['AC'].head()

这种方式不仅解决了动态创建的问题,还能让你统一管理所有的数据集,后续要遍历、修改或者导出都超级方便!

内容的提问来源于stack exchange,提问作者Marco Aurelio P Marsitch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:48:12