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

为Dataframe中重复的指定列名添加后缀

为重复的'SITE'列添加后缀重命名

问题场景

现有一个Pandas DataFrame,列名依次为week、SITE、LAL、SITE、LAL,需要将所有名为SITE的列添加数字后缀,最终列名变为week、SITE_1、LAL、SITE_2、LAL。

示例DataFrame:

week    SITE        LAL SITE        LAL
0   1   BARTON CHAPEL   1.1 PENASCAL I  1.0
1   2   BARTON CHAPEL   1.1 PENASCAL I  1.0
2   3   BARTON CHAPEL   1.1 PENASCAL I  1.0
3   4   BARTON CHAPEL   1.1 PENASCAL I  1.0
4   5   BARTON CHAPEL   1.1 PENASCAL I  1.0
5   6   BARTON CHAPEL   1.4 PENASCAL I  1.0

解决方案

可以借助itertools.count生成递增的数字后缀,遍历列名完成重命名:

步骤1:构造示例DataFrame(若已有可跳过)

import pandas as pd

df = pd.DataFrame(
    [
        [1, 'BARTON CHAPEL', 1.1, 'PENASCAL I', 1.0],
        [2, 'BARTON CHAPEL', 1.1, 'PENASCAL I', 1.0],
        [3, 'BARTON CHAPEL', 1.1, 'PENASCAL I', 1.0],
        [4, 'BARTON CHAPEL', 1.1, 'PENASCAL I', 1.0],
        [5, 'BARTON CHAPEL', 1.1, 'PENASCAL I', 1.0],
        [6, 'BARTON CHAPEL', 1.4, 'PENASCAL I', 1.0],
    ],
    columns=['week', 'SITE', 'LAL', 'SITE', 'LAL']
)

步骤2:重命名列

from itertools import count

# 初始化计数器,从1开始
site_counter = count(1)
# 遍历列名,为SITE列添加后缀
df.columns = [f"{col}_{next(site_counter)}" if col == 'SITE' else col for col in df.columns]

验证结果

执行后查看列名:

print(df.columns)

输出:

Index(['week', 'SITE_1', 'LAL', 'SITE_2', 'LAL'], dtype='object')

完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:52:53