Pandas中Action列截取异常求助:需生成符合规则的Action_short列
解决方案
针对你的需求,最可靠的方式是使用正则表达式精准提取目标内容,避免手动截取位置出错的问题。
实现代码
import pandas as pd # 原始数据 data = [['Tom', '5-123g'], ['Max', '6-745.0d'], ['Bob', '5-900.0e'], ['Ben', '2-345'], ['Eva', '9-712.x']] df = pd.DataFrame(data, columns=['Person', 'Action']) # 生成Action_short列 df['Action_short'] = df['Action'].str.extract(r'(\d+-\d+)')
效果验证
执行后得到的结果完全符合预期:
| Person | Action | Action_short | |
|---|---|---|---|
| 0 | Tom | 5-123g | 5-123 |
| 1 | Max | 6-745.0d | 6-745 |
| 2 | Bob | 5-900.0e | 5-900 |
| 3 | Ben | 2-345 | 2-345 |
| 4 | Eva | 9-712.x | 9-712 |
原理说明
正则表达式 r'(\d+-\d+)' 的作用是:
\d+:匹配1个或多个数字-:匹配横杠本身- 整个模式会精准提取「数字-数字」的核心部分,自动忽略横杠后数字末尾的小数点、字母等无关内容,完美适配所有样本的结构差异。
内容的提问来源于stack exchange,提问作者juststarted
相关产品推荐
相关产品推荐

