You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Python Pandas中读取多文件到独立DataFrame及报错解决

解决多文件读取到不同DataFrame的问题

首先咱们来拆解下你代码里的问题,这也是触发NameError的核心原因:

  • 文件名引用错误:你写pd.read_csv(Norway.csv)时,Python会把Norway.csv当成一个变量名去查找,但你根本没定义过这个变量,自然会报错!正确的做法是要么用你之前定义的文件名变量(比如f1),要么直接把文件名写成带引号的字符串(比如'Norway.csv')。
  • 变量重复赋值:你连续用f变量赋值了两次,后面的f='Canada.csv'f='Chile.csv'会直接覆盖前面的内容,最后f的值只会是'Chile.csv',之前的Norway.csv等于白定义了。

修正后的基础版代码

如果你想给每个DataFrame单独命名,那可以这样写:

import pandas as pd

# 给每个文件名单独定义变量,避免覆盖
fn_norway = 'Norway.csv'
fn_canada = 'Canada.csv'
fn_chile = 'Chile.csv'

# 读取时直接用定义好的变量,或者写带引号的字符串
norway_df = pd.read_csv(fn_norway)
canada_df = pd.read_csv(fn_canada)
chile_df = pd.read_csv(fn_chile)

这样就不会再出现NameError,每个文件都能对应到单独的DataFrame里。

更高效的进阶写法(适合多文件场景)

如果要处理6个甚至更多文件,一个个定义变量太繁琐,咱们可以用字典来统一管理所有DataFrame,操作起来更灵活:

import pandas as pd

# 把所有要读取的文件名放进一个列表里
file_list = ['Norway.csv', 'Canada.csv', 'Chile.csv', 'xxx.csv', 'yyy.csv', 'zzz.csv']

# 创建空字典来存储DataFrame
df_collection = {}

# 循环读取每个文件,用文件名(去掉后缀)作为字典的键
for file in file_list:
    # 提取不带后缀的文件名(比如'Norway.csv'变成'Norway')
    df_key = file.split('.')[0]
    # 读取文件并存入字典
    df_collection[df_key] = pd.read_csv(file)

# 后续要调用某个DataFrame时,直接从字典里取就行
print(df_collection['Norway'].head())

这种方法不用手动给每个DataFrame命名,不管文件数量多少,都能轻松处理。

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

火山引擎 最新活动