我在熊猫df上有以下专栏:
| Primary_key |
|-------------|
| LIT1-1.10_t |
| LIT1-1.20_t |
| LIT1-1.30_t |
| LIT4-1.99_t |
| LIT4-1.88_t |
| LIT4-1.77_t |
我希望从“Primary_key”(字符串)中提取版本号;将其拆分为版本号和ID,并将它们放入新的列中以获得以下输出:
^{pr2}$我认为pandas.Series.str.extractall
可以解决我的任务,但我有一些问题需要正确应用。我试过了
df['ID'] = df['Primary_Key'].str.extractall(r'(\d{3})').unstack().apply(','.join, 1)
将所有数字提取到一个单独的列中('ID'),以便在下一步中将它们分开。但是用这个代码我只能得到最后三个数字:
| Primary_key | ID |
|--------------|----|
| LIT1-1.10_t |Nan |
| LIT1-1.20_t |Nan |
| LIT1-1.30_t |Nan |
| LIT4-1.999_t |999 |
| LIT4-1.888_t |888 |
| LIT4-1.777_t |777 |
希望你们中有一位经验丰富的程序员知道如何解决这个问题:)
PS:我也尝试过正则表达式re.findall('\d+',...)
,但我认为这不完全是蜜蜂的膝盖。在
使用Regex:
演示:
输出:
^{pr2}$是的,
str.extract
和命名的捕获组应该可以做到这一点。在要更新
^{pr2}$df
相关问题 更多 >
编程相关推荐