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

如何将指定无扩展名CSV文件读取为命名Pandas DataFrame?

问题出在哪?我帮你捋清楚!

你遇到的核心问题是循环变量的赋值逻辑不对,而且你想直接用字符串创建对应名称的DataFrame,但当前写法根本没实现这个目的:

  • 你的循环里,raw_df只是个临时的循环变量,每次循环都会被新读入的DataFrame覆盖,所以跑完循环后,它只会保留最后一次读取的结果,前面的YRD数据早就被冲掉了。
  • 你想要的是生成YRD、HOUSE这样独立的DataFrame变量,但直接把读取结果赋值给循环变量,根本没法把字符串(比如'YRD')变成当前环境里的变量名。
两种解决办法

方法1:用字典存(强烈推荐)

用字典来对应文件名和DataFrame,既整洁又方便调用,比零散的变量好管理太多:

import pandas as pd

# 要读取的文件名列表
target_files = ['YRD','HOUSE']
# 用字典存每个文件对应的DataFrame
df_store = {}

for file_name in target_files:
    df_store[file_name] = pd.read_csv(file_name, low_memory=False)

# 调用的时候直接用键名取就行,比如:
# print(df_store['YRD'].head())

方法2:直接创建变量(不推荐,容易乱)

如果你铁了心要单独的YRD、HOUSE变量,可以通过修改全局变量字典来实现,代码是这样的:

import pandas as pd

target_files = ['YRD','HOUSE']

for file_name in target_files:
    # 把文件名作为变量名,绑定对应的DataFrame
    globals()[file_name] = pd.read_csv(file_name, low_memory=False)

# 现在就能直接用YRD和HOUSE这两个变量了

不过真心不建议这么干,尤其是文件多的时候,很容易和现有变量重名,后期排查问题会头大。

为啥单独读就行?

单独写YRD = pd.read_csv('YRD', ...)能成功,是因为你明确把读取的结果绑定给了YRD这个变量;但循环里的写法只是把结果给了临时的raw_df,完全没把字符串'YRD'和DataFrame关联成变量,自然就留不下啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:40:52