我有一个数据帧“sp”,其中有一列“RouteIdentifier”,其中包含状态路由和附加噪声。我想从每一行获取数字子字符串,最好不带前导 0,并将其作为 int 放入新列中。
我成功地提取了数字,但它们作为列表对象插入到新列中(例如“012d”-> [012])。
sp.insert(1, 'StateRoute', [re.findall(r'\d+', x) for x in sp['RouteIdentifier']])
如果您对当前的方法感到满意,只需修改正则表达式以避免前导零并将字符串转换为整数:
sp.insert(1, 'StateRoute',
[list(map(int, re.findall(r'[1-9]+\d*', x)))
for x in sp['RouteIdentifier']])