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

如何在Pandas中为前N列添加后缀?

给Pandas DataFrame的前N列添加后缀

问题场景

已知df.add_suffix("_x")可给所有列添加后缀,但需仅为前N列(例如前3列)添加后缀,其余列保持原名。

原始代码(全列添加后缀)

import pandas as pd

df = pd.DataFrame( {"name" : ["John","Alex","Kate","Martin"], "surname" : ["Smith","Morgan","King","Cole"],
                    "job": ["Engineer","Dentist","Coach","Teacher"],"Age":[25,20,25,30],
                    "Id": [1,2,3,4]})

# 给所有列添加后缀
df.add_suffix("_x")

实现目标的两种方法

方法1:拆分列后合并(不修改原DataFrame)

提取前N列添加后缀,再与剩余列拼接,保留原DataFrame不变:

import pandas as pd

df = pd.DataFrame( {"name" : ["John","Alex","Kate","Martin"], "surname" : ["Smith","Morgan","King","Cole"],
                    "job": ["Engineer","Dentist","Coach","Teacher"],"Age":[25,20,25,30],
                    "Id": [1,2,3,4]})

N = 3  # 指定要添加后缀的前N列数
# 提取前N列并添加后缀
first_n_cols = df.iloc[:, :N].add_suffix("_x")
# 提取剩余列
rest_cols = df.iloc[:, N:]
# 横向合并两部分
result_df = pd.concat([first_n_cols, rest_cols], axis=1)

print(result_df)

方法2:直接修改列名(修改原DataFrame)

通过列表推导式遍历列名,仅为前N列添加后缀:

import pandas as pd

df = pd.DataFrame( {"name" : ["John","Alex","Kate","Martin"], "surname" : ["Smith","Morgan","King","Cole"],
                    "job": ["Engineer","Dentist","Coach","Teacher"],"Age":[25,20,25,30],
                    "Id": [1,2,3,4]})

N = 3  # 指定要添加后缀的前N列数
# 生成新列名列表
new_columns = [f"{col}_x" if idx < N else col for idx, col in enumerate(df.columns)]
# 替换原列名
df.columns = new_columns

print(df)

输出结果(两种方法均得到以下结果)

name_x surname_x     job_x  Age  Id
0     John      Smith  Engineer   25   1
1     Alex     Morgan   Dentist   20   2
2     Kate       King     Coach   25   3
3   Martin       Cole   Teacher   30   4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 23:24:33