从查找表中提取匹配的字符串

时间:2019-07-09 15:03:56

标签: python python-3.x

我需要匹配文本中的某些值。
值存在于单独列标题下的csv中,如果值匹配,我需要将其保存为{column_header1:[Value1], column_header2:[Value3]...}
形式 所以我需要保存找到的最后一场比赛

我必须从中提取值的查找csv是具有列和行的数据框,某些行在列下为空
查找示例如下

enter image description here

要搜索的文本可以是任何内容 示例-
"hello, my iphone and pixel phones are damage due to water, please help me in service1 or service"

这就是我尝试过的

def extractor(text):
    columns = list(cf_lookup.columns[::2])
    for i in cf_lookup[columns].iteritems():
        x = cf_lookup[columns]
        x = x.fillna('0')
    critical_values ={}
    for i in range(0,x.shape[1]):
        for j in range(0,x.shape[0]):
        pattern = x.iloc[j][i]
        if(pattern != '0'):
            r1 = re.findall(r'\b' + str(pattern) +r'\b',text,re.I)
            r1 = list(set(r1))
            critical_values.update({columns[i]:r1})
        elif(pattern == '0'):
            empty.append('0')
    return critical_values

我每次在column_header前面都得到空白值

{'Request Type': [ ],
 'Product': [ ],
 'Manufacturer': [ ],
 'Part': [ ],
 'Model': [ ],
 'Problem': [],
 'Resolution': [ ]}


空白处应该没有匹配项。

预期输出应为

{'Request Type': [ Service1'],
 'Product': ['Pixel'],
 'Manufacturer': [],
 'Part': [ ],
 'Model': [ ],
 'Problem': ['Water'],
 'Resolution': [ ]}


任何建议或更正将不胜感激。

0 个答案:

没有答案