Pandas DataFrame字符串列按规则替换下划线的实现咨询
实现方案
核心思路通过两次字符串替换完成需求,第一次用正则匹配前后紧邻字符均为数字的下划线替换为.,第二次将剩余所有下划线替换为空格即可。
完整代码
import pandas as pd # 构建示例DataFrame df = pd.DataFrame({'col':['1_2_abc_def','34_567','8_910_ghi','11_12jkl']}) # 执行替换逻辑 df['col'] = df['col'].str.replace(r'(?<=\d)_(?=\d)', '.', regex=True)\ .str.replace('_', ' ') # 输出结果 print(df)
输出结果
col 0 1.2 abc def 1 34.567 2 8.910 ghi 3 11.12jkl
逻辑说明
- 正则表达式
(?<=\d)_(?=\d)中:(?<=\d)是正向后视断言,限定下划线的前一个字符必须是数字(?=\d)是正向前瞻断言,限定下划线的后一个字符必须是数字- 仅满足上述两个条件的下划线会被替换为
.,剩余所有下划线统一替换为空格,完全符合需求规则。
内容的提问来源于stack exchange,提问作者LeoGER
相关产品推荐
相关产品推荐

