从数据帧列中提取子字符串,作为整数插入到新列中

问题描述 投票:0回答:1

我有一个数据帧“sp”,其中有一列“RouteIdentifier”,其中包含状态路由和附加噪声。我想从每一行获取数字子字符串,最好不带前导 0,并将其作为 int 放入新列中。

我成功地提取了数字,但它们作为列表对象插入到新列中(例如“012d”-> [012])。

sp.insert(1, 'StateRoute', [re.findall(r'\d+', x) for x in sp['RouteIdentifier']])
python pandas dataframe substring
1个回答
0
投票

如果您对当前的方法感到满意,只需修改正则表达式以避免前导零并将字符串转换为整数:

sp.insert(1, 'StateRoute',
          [list(map(int, re.findall(r'[1-9]+\d*', x)))
           for x in sp['RouteIdentifier']])

正则表达式演示

© www.soinside.com 2019 - 2024. All rights reserved.