我数据库中的一列以下面提到的格式存储文本信息。该文本不是标准格式,有时在“保险日期”字段之前可能会有其他文本。当我在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
使用正则表达式
如果文本遵循某种模式(或多或少),则可以使用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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。