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

使用Pandas批量读取CSV并自定义变量名时的语法错误解决咨询

解决Python中用exec创建DataFrame变量的SyntaxError问题

错误原因

你遇到的SyntaxError: invalid token是因为Python变量名不能以数字开头,而你提取的subjid(比如100001_t0)直接作为变量名违反了这个语法规则。

推荐解决方案:用字典存储DataFrame(更易管理)

不要创建一堆独立变量,用字典统一存储所有处理后的DataFrame是更规范的做法,后续遍历、合并都更方便:

import pandas as pd
import os

# 初始化字典存储所有DataFrame
df_collection = {}

# 遍历目录下的CSV文件
for file in os.listdir('.'):
    if file.endswith('.csv'):
        # 提取subjid(去掉.csv后缀)
        subjid = file.rstrip('.csv')
        # 读取CSV
        temp_df = pd.read_csv(file)
        
        # 在这里执行你的数据整理操作
        # 示例:删除列、重命名列、分组透视
        # temp_df = temp_df.drop(columns=['unused_col'])
        # temp_df = temp_df.rename(columns={'old_name': 'new_name'})
        # temp_df = temp_df.groupby('group_col').agg({'value_col': 'mean'}).reset_index()
        
        # 将处理后的DataFrame存入字典,key为subjid
        df_collection[subjid] = temp_df

# 合并所有DataFrame
final_combined_df = pd.concat(df_collection.values(), ignore_index=True)

可选方案:给变量名加前缀(强行创建独立变量)

如果坚持要生成独立变量,给变量名加个字母前缀(比如df_),让变量名以字母开头,符合Python语法:

# 替换原来的exec语句为:
exec("df_{0} = pd.read_csv(filename)".format(subjid))

比如100001_t0会变成df_100001_t0,这样就能正常创建变量了。不过这种方式不推荐,当文件数量多的时候,变量会杂乱无章,后续维护和调用都很麻烦。

内容的提问来源于stack exchange,提问作者florence-y

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:05:27