【发布时间】:2017-10-30 08:53:21
【问题描述】:
我是 Python 编程的初学者。我正在探索正则表达式。我正在尝试从描述列中提取一个单词(数据库名称)。我无法提供多个正则表达式模式。
请看下面的描述和代码。
说明
Summary: AD1: Low free DATA space in database AD1ADS: 10.00% Date: 06/28/2017 Severity: Warning Res
Summary: Database SV1V1CH has used log space: 90.00% Date: 02/06/2017 Severity: Warning ResourceId: s
Summary: SAP SolMan Sys=SM1Tempdb,MO=AGEEPM49,Alert=Database Host Status,Desc=A database hos
*** Clearing Event Received *** SNG01AMMSOL04_age SAP SolMan Sys=SM1_SNG01AMMSOL04,MO=AGEEQM46,Alert
提取的数据库名称的预期输出
AD1ADS
SV1V1CH
SM1Tempdb
SNG01AMMSOL04
代码尝试
sentence = df['Description']
frame = pd.DataFrame({'logs': sentence})
import re
pattern = re.compile(r'[dD]atabase (\w+)|Sys=(\w+)')
for _, line in frame.iterrows():
name = pattern.findall(line['logs'])
if name:
line['names'] = name[0]
else:
line['names'] = 'Miscellaneous'
谁能告诉我,我在这里做错了什么。
我现在得到的输出
(u'AD1ADS', u'')
(u'SV1V1CH', u'')
(u'', u'CM1_CHE01AMMSOL04')
Miscellaneous
【问题讨论】:
-
你得到了什么输出?请同时发布
-
请看已编辑的。我也发布了我的答案
-
看看@jezrael 的答案,这就是你可以在熊猫中做到的方式
标签: python pandas python-2.7