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

Python:字典中DataFrame列名末尾数字移除代码失效求助

问题分析与改进方案

你的代码没生效的核心原因:仅修改了循环里的临时变量col,完全没改动DataFrame的实际列名。循环中的col只是列名的副本,赋值操作不会同步到val.columns上。

改进方法一:批量替换(推荐,更简洁高效)

直接用Pandas的字符串方法批量处理列名,不用逐个循环:

import re

for key, val in df.items():
    if key != "name1":
        # 正则替换列名末尾的所有数字字符
        val.columns = val.columns.str.replace(r'\d+$', '', regex=True)

改进方法二:循环生成新列名列表

如果坚持用循环的方式,需要先收集所有修改后的列名,再一次性替换原列名:

import re

for key, val in df.items():
    if key != "name1":
        new_columns = []
        for col in val.columns:
            # 移除列名末尾的数字
            cleaned_col = re.sub(r'\d+$', '', col)
            new_columns.append(cleaned_col)
        # 替换原列名,这一步才是真正修改DataFrame的列名
        val.columns = new_columns

额外注意

如果字典中的DataFrame是其他DataFrame的切片视图,建议先做拷贝(val = val.copy())再修改列名,避免意外改动原数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:19:53