我有一个将近1M行的python数据框。有一个包含一些数字的字符串列,例如

 String_Col

 24FT String
 String 24FT
 2 String 20FT
 20 String 3


我需要从此列中提取24,24,20,20并将其另存为新列。我可以遍历每个单元格并进行字符串转换,但是这对于大型数据集来说会花费大量时间。

任何想法表示赞赏。

最佳答案

您可以使用regex匹配模式

import re

def func(x):
    result = re.findall(r"\d+(?=FT)",x)
    if not result:
        try:
            return int(x[:2])
        except:
            return None
    return result[0]

df["num_col"] = df["String_Col"].apply(func)


如果要在FT之前精确地输入两位数,请使用re.findall(r"\d{2}(?=FT)",x)

10-06 05:19
查看更多