在列表列表中搜索术语,并检查其中一个术语是否在词典中。然后返回该词在字典中的索引

问题描述 投票:0回答:1

我已经导入了从LinkedIn导出的关于我的联系的电子表格,并希望将人们在不同级别上的职位进行分类。

因此,我创建了一个词典,其中包含用于查找每个职位级别的术语。

例如:

dic = {'0 - CEO, Founder, Co-Founder': ['CEO', 'Founder', 'Co-Founder', 'Cofounder', 'Owner'], '1 - Director of': ['Director', 'Head']}

而且我需要一个代码来读取电子表格中的每个位置,检查是否有这些术语并在另一特定列中返回等效键。

我正在使用Pandas进行此操作,因此我将电子表格作为数据框导入,并且已经设法进行了如下所示的分类:

enter image description here

我以前这样做的代码是:

import pandas as pd
plan = pd.read_excel('SpreadSheet Name.xlsx', sheet_name = 'Positions')

dic0 = ['Accelerator', 'Account']
dic1 = ['Académico']
dic2 = ['Visual', 'Volunteer']   
dicgeral = [dic0, dic1, dic2]

def in_list(list_to_search,terms_to_search):     
    results = [item for item in list_to_search if item in terms_to_search]
    if len(results) > 0:
        return '? - Teste'        
    else:
        return 'False'
plan['PositionLevel'] = plan['Position'].str.split().apply(lambda x: in_list(x, dicgeral[0]))

但是,这种方法是从数据框中的list_t_search中的terms_to_search列表中识别一项。我相信这样做的最好方法是从字典中然后返回密钥。

我尝试将以下代码应用于该程序:

dicgeral_2 = {'0 - Teste': ['Accelerator', 'Account'], '1 - Teste':['Académico'], '2 - Teste':['Visual', 'Volunteer']}

def in_dic (x, dicgeral_2):
    for key in dicgeral_2:
        for elem in dicgeral_2[key]:
            if elem == x:
                return key
    return False

其中的输出来自:in_dic('Account', dicgeral_2)

'0 - Teste'

但是我什么也没得到。

我真的很感谢任何人的帮助。

非常感谢。

我已经导入了从LinkedIn导出的关于我的联系的电子表格,并希望将人们在不同级别上的职位进行分类。因此,我创建了一个字典,其中包含用于查找每个词的术语...

python pandas dataframe dictionary series
1个回答
0
投票

尝试一下:

© www.soinside.com 2019 - 2024. All rights reserved.