我有一个将近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)