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

如何移除DataFrame名称中的特殊字符?Python多Sheet Excel处理

解决Excel工作表名含特殊字符无法生成合法DataFrame变量的问题

核心思路

通过正则表达式清理工作表名,将非合法字符替换为下划线,确保生成的变量名符合Python命名规则(仅含字母、数字、下划线,且不以数字开头),再将清理后的名称与对应DataFrame绑定。

具体实现代码

import pandas as pd
import re

# 读取Excel文件,获取工作表名到DataFrame的字典
df_dict = pd.read_excel('Book1.xlsx', sheet_name=None)

# 定义清理函数,生成合法Python变量名
def clean_var_name(name):
    # 将所有非字母、数字、下划线的字符替换为下划线
    cleaned_name = re.sub(r'[^a-zA-Z0-9_]', '_', name)
    # 若开头为数字,添加下划线前缀避免语法错误
    if cleaned_name[0].isdigit():
        cleaned_name = f'_{cleaned_name}'
    return cleaned_name

# 循环将每个DataFrame绑定到清理后的合法变量名(全局变量)
for sheet_name, df in df_dict.items():
    valid_var_name = clean_var_name(sheet_name)
    globals()[valid_var_name] = df

使用示例

原工作表名GF-1会被清理为GF_1,H_2 S-Z变为H_2_S_Z,GB-SF+NZ变为GB_SF_NZ,之后可直接调用:

GF_1.head()
H_2_S_Z.describe()

更规范的替代方案(推荐)

如果不想污染全局命名空间,建议将清理后的DataFrame存入字典统一管理:

cleaned_dfs = {}
for sheet_name, df in df_dict.items():
    cleaned_dfs[clean_var_name(sheet_name)] = df

# 调用方式
cleaned_dfs['GF_1'].head()

内容的提问来源于stack exchange,提问作者Steve..Johnson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:25:11