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

如何用字符串值命名DataFrame?代码报错‘str’对象不支持项赋值

解决你的CSV文件读取与DataFrame创建问题

嘿,我一眼就揪出你代码里的两个问题啦,咱们一步步来拆解:

错误原因分析

  1. 函数名拼写失误:你定义的函数是csv_file_names,但调用的时候写成了csv_files_names(多了一个s),这会直接触发NameError,Python根本找不到这个函数哦。
  2. 字符串不可变导致赋值失败:file[:-4] = pd.read_csv(file)这行代码的核心问题是——file是字符串类型,而Python里的字符串是不可变对象,你没法直接对它的切片进行赋值操作,这就是你看到'str' object does not support item assignment错误的根源。而且就算能赋值,这种方式也没法把DataFrame和文件名有效关联起来呀。

修正后的代码

我给你调整了代码,用字典来存储所有的DataFrame,既能通过文件名快速访问对应的DataFrame,又避免了动态创建变量的混乱:

import os
import pandas as pd

def csv_file_names(path):
    filenames = os.listdir(path)
    return [filename for filename in filenames if filename.endswith(".csv")]

# 修正函数名的拼写错误
csv_files = csv_file_names(data_path)

# 创建字典存储DataFrame,键为去掉.csv后缀的文件名
data_frames = {}
for file in csv_files:
    # 拼接完整文件路径,防止脚本不在目标目录时找不到文件
    full_file_path = os.path.join(data_path, file)
    # 提取不带后缀的文件名作为字典的键
    df_key = file[:-4]
    # 将DataFrame存入字典
    data_frames[df_key] = pd.read_csv(full_file_path)

使用说明

之后你想访问某个文件对应的DataFrame,直接通过字典的键来获取就好啦,比如你的CSV文件叫sales_data.csv,那对应的DataFrame就是data_frames["sales_data"]。

这种用字典存储的方式比动态创建变量安全得多,也更容易管理所有的DataFrame,不会出现命名冲突或者找不到变量的问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:20:56