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

如何在DataFrame的Site列中去除'Site_'前缀保留数字?

移除DataFrame中Site列固定前缀、保留数字的实用方法

针对你要移除DataFrame里Site列的Site_前缀、仅保留数字的需求,这里有几个高效且易维护的方法,推荐按场景选择:

方法1:str.replace(固定前缀场景首选)

这是最直接的方案,适合前缀完全固定的情况,关闭正则模式后效率更高:

import pandas as pd

# 初始化你的DataFrame
df = pd.DataFrame({
    'Site': ['Site_1', 'Site_2', 'Site_4', 'Site_8', 'Site_11', 'Site_12', 'Site_21', 'Site_34'],
    'Name': ['Tom', 'Tom', 'Jack', 'Rose', 'Marrie', 'Marrie', 'Jacob', 'Jacob']
})

# 替换固定前缀
df['Site'] = df['Site'].str.replace('Site_', '', regex=False)

解释:regex=False让程序把Site_当作普通字符串处理,避免正则解析的额外开销,逻辑直白,后续维护成本低。

方法2:str.split(下划线分隔场景适用)

如果前缀和数字始终用下划线分隔,也可以通过分割字符串取目标部分:

df['Site'] = df['Site'].str.split('_').str[1]

解释:将每个Site字符串按下划线分割成列表,直接取索引为1的元素(也就是数字部分),同样非常直观。

方法3:str.extract(复杂场景灵活适配)

如果以后前缀可能变化,但数字部分始终是连续数字,用正则提取的方式兼容性更强:

df['Site'] = df['Site'].str.extract('(\d+)', expand=False)

解释:正则表达式(\d+)会匹配并提取字符串中所有连续的数字,不管前面的前缀是什么,都能准确拿到数字部分。

可选:转换为数值类型

如果需要把Site列从字符串转为整数类型,可以追加这一步:

df['Site'] = df['Site'].astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:58:40