【发布时间】:2021-07-31 05:06:05
【问题描述】:
我正在尝试在数据框列(名称深度)中提取由连字符分隔的 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()
【问题讨论】:
-
虽然正则表达式可以很好地工作,但对于您的情况,它看起来像 str.split("-") 方法就足够了吗?然后,您可以从该结果中获取“from”和“to”字符串并将它们转换回浮点数
-
试试,
ConvCore['Depth'].str.split('-', expand =True)?
标签: python string expression extract