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

如何编辑Pandas DataFrame移除小写开头单词保留大写开头单词?

解决Indeed爬取数据中职位头衔的冗余清洗问题

问题分析

你之前的尝试存在两个核心问题:

  1. str.replace(r'^[a-z]', ' ') 仅匹配开头单个小写字母,只能替换掉第一个字符,无法处理开头一串小写单词的冗余内容,所以没有效果。
  2. df[df.Title.str[0].str.isupper()] 是筛选开头首字母大写的行,但你的数据所有头衔开头都是小写冗余内容,导致全量行被删除——这是筛选行而非修改字段内容,方向完全错误。

正确解决方法

方法1:正则提取有效内容

用str.extract直接提取从第一个大写字母开始到结尾的所有内容,正则表达式([A-Z].*)会匹配第一个大写字母及后续所有字符:

df['Cleaned_Title'] = df['Title'].str.extract(r'([A-Z].*)')

方法2:正则替换冗余前缀

用str.replace替换开头所有小写字母、空格、连字符等冗余内容,正则表达式^[a-z\s-]+匹配开头连续的小写字母、空格或连字符,替换为空字符串:

df['Cleaned_Title'] = df['Title'].str.replace(r'^[a-z\s-]+', '', regex=True)

测试示例

import pandas as pd

# 模拟你的爬取数据
df = pd.DataFrame({
    'Title': [
        'active visited hover focus focus-visible after Business Analyst, Commercial Systems',
        'link hover before Data Scientist',
        'nav-item active Senior Software Engineer'
    ]
})

# 应用方法2清洗字段
df['Cleaned_Title'] = df['Title'].str.replace(r'^[a-z\s-]+', '', regex=True)

print(df[['Title', 'Cleaned_Title']])

输出结果:

Title                  Cleaned_Title
0  active visited hover focus focus-visible after Business Analy...  Business Analyst, Commercial Systems
1                              link hover before Data Scientist                    Data Scientist
2                            nav-item active Senior Software Engineer          Senior Software Engineer

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:30:58