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

如何在Pandas DataFrame中重命名含'F'的列并保留F+数字格式

解决方案

你可以通过正则表达式结合pandas的列名处理方法实现需求,只修改包含'F'的列,提取其中F+数字的部分作为新列名,具体实现如下:

import pandas as pd
import re

# 你的原始DataFrame
df1 = pd.DataFrame({'Name' : ['Jake', 'Nate', 'Max', 'Alex', 'Lex', 'Kat', 'Nate', 'Jake'],
                'textBefore F1: textAfter' : [1, 2, 3, 4, 5, 6, 7, 8],
                'textBefore F2: textAfter' : [8, 4, 2, 7, 9, 6, 5, 1],
                'textBefore F3: textAfter' : [9, 8, 5, 4, 6, 3, 2, 5],
                'Color' : ['red', 'blue', 'yellow', 'balck', 'purple', 'pink', 'orange', 'green'],})

# 方法一:用函数配合rename修改列名
def rename_target_col(col_name):
    # 匹配F后跟数字的片段
    match_result = re.search(r'F\d+', col_name)
    if match_result:
        return match_result.group()
    # 不包含F的列保留原名
    return col_name

df1.rename(columns=rename_target_col, inplace=True)

# 查看修改后的列名
print(df1.columns)

代码说明

  • re.search(r'F\d+', col_name):正则表达式F\d+会精准匹配列名中F后接一个或多个数字的部分,比如从textBefore F1: textAfter中提取出F1。
  • inplace=True表示直接在原DataFrame上修改;如果不想改动原数据,可以去掉该参数,将结果赋值给新变量(如new_df = df1.rename(columns=rename_target_col))。

更简洁的写法(列表推导式)

如果不想单独定义函数,也可以用一行代码完成:

import re

df1.columns = [re.search(r'F\d+', col).group() if 'F' in col else col for col in df1.columns]

逻辑和上面一致:遍历所有列名,包含'F'的列提取目标片段,其余列保持原名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:15:31