如何用Pandas拆分扑克数据中无分隔符的字母与数字?求最优方案
解决方案:拆分扑克操作至单独行
问题出在你使用的正则表达式上,\D+会匹配连续的多个非数字字符(比如把fff识别成一个整体),而我们需要将每个单独的操作字母(f/c)和带数字的操作(r225)拆分为独立项。
修正步骤:
- 使用正确的正则表达式匹配单个操作单元:
- 每个操作是单个字母(f/c/r)开头,后面可选跟随数字,对应正则为
r'[fcr]\d*'(如果只有这三种操作),或者更通用的r'[a-zA-Z]\d*'。
- 每个操作是单个字母(f/c/r)开头,后面可选跟随数字,对应正则为
- 用
str.findall提取所有匹配项,再通过explode将列表拆分为单独行。
示例代码:
import pandas as pd # 示例数据集 df = pd.DataFrame({'Action': ['fffr225fc', 'cfr100f']}) # 拆分操作到单独行 df = df.assign(Action=df['Action'].str.findall(r'[fcr]\d*')).explode('Action').reset_index(drop=True)
处理结果:
| Action |
|---|
| f |
| f |
| f |
| r225 |
| f |
| c |
| c |
| f |
| r100 |
| f |
内容的提问来源于stack exchange,提问作者Diego Mioni
相关产品推荐
相关产品推荐

