首页 > 解决方案 > Python - 从字符串中提取用连字符分隔的数字

问题描述

我正在尝试在数据框列(名称深度)中提取由连字符分隔的 2 个数字(深度从和深度到)。虽然第一个数字被正确提取,但第二个数字却不是。我尝试了很多方法。

ConvCore = pd.read_csv(r'ConvCore.csv', encoding='cp1252')
ConvCore.columns = ['Depth', 'k', 'phi', 'Well']
ConvCore['DepthFrom'] = ConvCore['Depth'].str.extract('([0-9.]+)')

#ConvCore['DepthTo'] = ConvCore['Depth'].str.extract('-([0-9.]+)')
#for i in ConvCore:
    #ConvCore['DepthTo'] = re.search(r'(\d+)-', ConvCore['Depth'][i-1])
    #ConvCore['DepthFrom'] = ConvCore['Depth'].str.extract('(\d+)').astype(float)
    #DepthTo = ConvCore['Depth'].str.extract('(?P<digit1>[0123456789])').astype(float)
    #ConvCore['DepthTo'] = ConvCore['Depth'].str.split("-")
    #ConvCore['DepthFrom'] = re.match(r'(\d+)', ConvCore['Depth']).group()

在此处输入图像描述

标签: pythonstringexpressionextract

解决方案


试试这个方法:

ConvCore['DepthFrom'] = ConvCore['Depth'].str.split("-", expand=True)[0]
ConvCore['DepthTo'] = ConvCore['To'].str.split("-", expand=True)[1]

推荐阅读