开发者社区> 问答> 正文

解析原始文本数据并在Python中提取特定值

我数据库中的一列以下面提到的格式存储文本信息。该文本不是标准格式,有时在“保险日期”字段之前可能会有其他文本。当我在Python中进行拆分时,可能会将“保险日期”放在不同的列中。在这种情况下,我需要在所有列中搜索值“保险日期”。

示例文本

"Accumulation Period - period of time insured must incur eligible medical expenses at least equal to the deductible amount in order to establish a benefit period under a major medical expense or comprehensive medical expense policy.\n
Insurance Date 12/17/2018\n
Insurance Number 235845\n
Carrier Name SKGP\n
Coverage $240000"

预期结果

INS_NO     Insurance Date     Carrier Name
235845    12/17/2018          SKGP   

我们如何解析这样的原始文本信息并提取保险日期的值

我正在使用以下逻辑来提取此内容,但我不知道如何将日期提取到另一列中

df= pd.read_sql(query, conn)
df2=df["NOTES"].str.split("\n", expand=True)

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 10:06:20 496 0
1 条回答
写回答
取消 提交回答
  • 使用正则表达式

    如果文本遵循某种模式(或多或少),则可以使用regex。 参见python文档中的正则表达式操作。

    在此处查看并尝试使用两种可能的解决方案的代码。 您可以在下面找到一个简化的示例。

    text = """
    Accumulation Period - period of time insured must incur eligible medical expenses at least equal to the deductible amount in order to establish a benefit period under a major medical expense or comprehensive medical expense policy.
    Insurance Date 12/17/2018
    Insurance Number 235845
    Carrier Name SKGP
    Coverage $240000
    """
    
    pattern = re.compile(r"Insurance Date (.\*\nInsurance Number (.\*\nCarrier Name (.\*\n")
    
    match = pattern.search(text)
    
    print("Found:")
    if match:
        for g in match.groups():
            print(g)
    

    输出

    Found:
    12/17/2018
    235845
    SKGP
    

    回答来源:stackoverflow

    2020-03-24 10:06:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载