如何提取DataFrame列字符串下划线中间段并拼接末尾数字
Pandas DataFrame字符串处理方案
你可以结合pandas的字符串提取方法str.extract和正则表达式一步完成处理,不会影响其余列的内容,具体实现如下:
完整代码
import pandas as pd import re # 构造示例数据(你实际使用时替换为自己的df即可) df = pd.DataFrame({ 'col1': ['a_bu1', 'a_lap_aa1', 'a_lap_aa2', 'h_bb_led1'], 'col2': ['dd', 'd', 'd', 'dd'] }) # 核心处理逻辑 df['col1'] = df['col1'].str.extract(r'^[^_]+_([a-zA-Z]+).*?(\d+)$').agg(''.join, axis=1) # 输出结果 print(df)
代码说明
- 正则表达式规则拆分:
^[^_]+_:匹配字符串开头到第一个下划线(包含下划线)的所有内容,直接过滤丢弃([a-zA-Z]+):第一个捕获组,提取第一个下划线后连续的英文字母,即你需要保留的中间段内容.*?(\d+)$:跳过中间任意字符,提取字符串末尾的连续数字作为第二个捕获组
str.extract会将两个捕获组返回为两列,再用agg(''.join, axis=1)按行拼接两组内容,直接覆盖原col1列,其余列保持不变。
输出结果
col1 col2 0 bu1 dd 1 lap1 d 2 lap2 d 3 bb1 dd
内容的提问来源于stack exchange,提问作者Lynn
相关产品推荐
相关产品推荐

