如何将DataFrame中胜-负-平格式的record列(含NC)拆分为4个独立列
拆分record列的pandas实现方案
直接使用正则匹配提取所有字段即可,代码示例如下:
import pandas as pd # 假设df为你持有的原始DataFrame # 正则规则:匹配胜-负-平,以及可选的NC标识 pat = r'^(\d+)-(\d+)-(\d+)(?:\s*\((\d+)\s*NC\))?$' df[['win', 'lose', 'draw', 'nc']] = df['record'].str.extract(pat) # 转换为可空整数类型 df[['win', 'lose', 'draw', 'nc']] = df[['win', 'lose', 'draw', 'nc']].astype('Int64') # 若需要nc列空值为Python原生None,补充执行以下代码 df['nc'] = df['nc'].where(df['nc'].notna(), None)
效果验证
用测试数据运行后输出示例:
| record | win | lose | draw | nc |
|---|---|---|---|---|
| 10-3-0 | 10 | 3 | 0 | None |
| 35-11-2 (1 NC) | 35 | 11 | 2 | 1 |
| 5-0-0 | 5 | 0 | 0 | None |
| 22-5-3 (2 NC) | 22 | 5 | 3 | 2 |
内容的提问来源于stack exchange,提问作者le Minh Nguyen
相关产品推荐
相关产品推荐

