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

如何在Pandas指定列的每个值末尾添加带括号的列名

Pandas 批量为指定列的每个值添加带列名的后缀

原始DataFrame

date  col1    col2    col3        col4
0  4-4-22   cat  ginger  gentle      placed
1  4-4-22   dog  golden    wild  not placed
2  4-4-22  fish   black  domest  not placed
3  4-4-22   dog   brown  gentle      placed

需求说明

给定列名列表 lst = ['col2', 'col4'],需要为列表中指定列的每个值末尾追加格式为(列名)的后缀,最终得到如下结果:

期望输出

date  col1           col2    col3               col4
0  4-4-22   cat  ginger (col2)  gentle      placed (col4)
1  4-4-22   dog  golden (col2)    wild  not placed (col4)
2  4-4-22  fish   black (col2)  domest  not placed (col4)
3  4-4-22   dog   brown (col2)  gentle      placed (col4)

解决方案

方式一:循环遍历处理(直观易懂)

通过循环目标列列表,将每个列的字符串值与带括号的列名直接拼接:

import pandas as pd

# 构造原始DataFrame
df = pd.DataFrame({
    'date': ['4-4-22']*4,
    'col1': ['cat', 'dog', 'fish', 'dog'],
    'col2': ['ginger', 'golden', 'black', 'brown'],
    'col3': ['gentle', 'wild', 'domest', 'gentle'],
    'col4': ['placed', 'not placed', 'not placed', 'placed']
})

lst = ['col2', 'col4']

# 批量处理目标列
for col in lst:
    df[col] = df[col].astype(str) + f' ({col})'

print(df)

方式二:apply方法(简洁高效)

利用apply方法对目标列批量处理,代码更紧凑:

import pandas as pd

# 构造原始DataFrame(同上)
df = pd.DataFrame({
    'date': ['4-4-22']*4,
    'col1': ['cat', 'dog', 'fish', 'dog'],
    'col2': ['ginger', 'golden', 'black', 'brown'],
    'col3': ['gentle', 'wild', 'domest', 'gentle'],
    'col4': ['placed', 'not placed', 'not placed', 'placed']
})

lst = ['col2', 'col4']

# 批量拼接后缀
df[lst] = df[lst].apply(lambda x: x.astype(str) + f' ({x.name})')

print(df)

两种方式都能实现需求,可根据个人习惯选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 14:05:23