python根据项目标签匹配人员

import random
import pandas as pd
import numpy as np

df1 = pd.read_excel(r'C:\Users\Administrator\Desktop\项目标签_人员.xlsx')
df1['人员id'] = df1['人员id'].astype('str')
gp = df1.groupby("项目标签")["人员id"].apply(lambda x:x.str.cat(sep=",")).reset_index()
gp.head()
项目标签人员id
0C10祛斑518,517,514,509,498,567,573,5502,5593,5594,559...
1E光嫩肤518,517,514,509,498,567,573,5502,5593,5594,559...
2E光祛斑518,517,514,509,498,567,573,5502,5593,5594,559...
3Fotona4DPro518,517,514,509,498,567,573,5502,5593,5594,559...
4G点注射5599,5596,5502
df2 = pd.read_excel(r'C:\Users\Administrator\Desktop\合并.xlsx')
df2.head()

在这里插入图片描述

flag = []
for bq in df2["项目标签"]:
    tags =set()
    for i,value in gp.iterrows(): 
        word = value["项目标签"]
        if bq == word:
            doc_id = random.choice(value["人员id"].split(",") ) 
            tags.add(doc_id)
    tag ="".join(tags)
    
    if tag:
        flag.append(tag)
    else:                    
        flag.append(None)
df2["人员id匹配"] = flag
df2.to_excel(r'C:\Users\Administrator\Desktop\out_put.xlsx',index=False)

在这里插入图片描述

flag = []
for row in df2["项目标签"].values:
    if row in df1['项目标签'].tolist() :    
        flag.append(row)
    else:
        flag.append(None)
df2["flag"] = flag
df2.head()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值